三角形的面积为
area=根号下:s·(s−a)·(s−b)·(s−c)
其中,s=(a+b+c)/2,a,b,c为三角形的三边。定义两个带参数的宏,一个用来求s,另一个用来求area。编写程序,在程序中用带实参的宏名来求面积area。
答案:
#include <iostream>
#include <iomanip>
#include <cmath>
#define s(a, b, c) (a+b+c)/2
#define area(a, b, c, s) s*(s-a)*(s-b)*(s-c)
using namespace std;
int main()
{
double a, b, c;
double ss, aa;
cout << "please enter a, b, c: ";
cin >> a >> b >> c;
for (; (a + b) <= c || (a + c) <= b || (b + c) <= a; ) {
cout << "error,please try \nplease enter a, b, c: ";
cin >> a >> b >> c;
}
ss = s(a, b, c);
aa = sqrt(area(a, b, c, ss));
cout << setiosflags(ios::fixed) << setprecision(4);
cout << "S= " << aa << endl;
return 0;
}