三角形面积为area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s=0.5(a+b+c).a,b,c为三角形的三条边

来源:百度知道 编辑:UC知道 时间:2024/06/02 12:22:38
定义两个带参数的宏,一个用来求s,另一个宏用来求area。
写程序,在程序中用带实参的宏名来求面积area

#define s(a,b,c) 0.5*(a+b+c)
#define area(s,a,b,c) sqrt(s*(s-a)*(s-b)*(s-c))
#include <math.h>
main()
{int a,b,c;
float s;
printf("put a,b,c=?\n");
scanf("%d%d%d",&a,&b,&c);
s=s(a,b,c);
printf("The area is:%.2f\n",area(s,a,b,c));
}

#include<stdio.h>
#include<math.h>
#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))
void main()
{
float a,b,c;
scanf("%f,%f,%f\n",&a,&b,&c);
if (a+b>c&&a+c>b&&b+c>a)
printf("%f\n",area(a,b,c));
else
printf("此三边不够成三角形!\n");
}
上面是在VC++6.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)) * \