解题思路:

因为要进行开方,于是要引入#include<math.h>;

先定义计算s的一个宏s(a,b,c);

再写一个求面积的宏,area(a,b,c,s);
在main函数输出语句中area(x,y,x,s(x,y,z))调用s宏,作为传到宏area中,输出结果。



注意事项:





参考代码:

#include<stdio.h>

#include<math.h>

#define s(a,b,c) (a+b+c)/2

#define area(a,b,c,s) sqrt(s*(s-a)*(s-b)*(s-c))

int main()

{

float x,y,z;

scanf("%f%f%f",&x,&y,&z);

printf("%.3f",area(x,y,z,s(x,y,z)));

return 0;

}


 

0.0分

6 人评分

  评论区

为什么在area那个红宏中,定义为area(s,a,b,c)这样,答案就会不一样,求解
2019-02-15 20:39:13
  • «
  • 1
  • »