问题描述
三角形面积=SQRT(S*(S-a)*(S-b)*(S-c)) 其中S=(a+b+c)/2,a、b、c为三角形的三边。 定义两个带参的宏,一个用来求area, 另一个宏用来求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))//这里S并未带参数int main(){double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);printf("%.3lf\n",AREA(a,b,c,S(a,b,c)));//调用时,实参全部带上return 0;}