c++定义两个带参数的宏。。一个用来求s一个用来求area,写程序,在程序中用带实参的宏名来求面积area

2024-11-24 00:10:23
推荐回答(2个)
回答1:

#include
#include
using namespace std;

#define S(a,b,c) ((a)+(b)+(c))/2
#define AREA(a,b,c) sqrt(S((a),(b),(c)) * (S((a),(b),(c)) - (a)) * (S((a),(b),(c)) - (b)) * (S((a),(b),(c)) - (c)))

int main( )
{
float a,b,c;

cout << "请输入三个边长:" << endl;
cin >> a >> b >> c;

if(a+b {
cout<<"此边长不能构成三角形"< }
else
{
cout << "s=" << S(a,b,c) << endl << "area=" << AREA(a,b,c) << endl;
}
return 0;
}
//////////////////////////////
//#define S(a,b,c) (a+b+c)/2;
//#define AREA(a,b,c) sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a.b.c)-c));
//不要在后面加分号,不要把逗号写成句号。

回答2:

错误的原因在于宏进行了嵌套。S(a,b,c)可以正常输出的 。你只要将AREA(a,b,c)删除即可。