三角形的面积为area=sqrt(s*(s-a)*(s-b)*(s-c)),s=(a+b+c)⼀2; 请分别用函数和带参数宏两种方法加以实现。

2024-12-22 14:38:31
推荐回答(1个)
回答1:

用函数的
#include
#include
void main()
{
float s(float a,float b,float c);
float area(float s,float a,float b,float c);
float a,b,c;
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
printf("a=%.2f,b=%.2f,c=%.2f,s=%.2f,area=%.2f\n",a,b,c,s(a,b,c),area(s(a,b,c),a,b,c));
}
float s(float a,float b,float c)
{
float s;
s=(a+b+c)/2;
return s;
}
float area(float s,float a,float b,float c)
{
float area;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
return area;
}
用参数宏的
#include
#include
#define s(a,b,c) (a+b+c)/2
#define area(s,a,b,c) sqrt(s*(s-a)*(s-b)*(s-c))
void main()
{
float a,b,c;
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
printf("a=%.2f,b=%.2f,c=%.2f,s=%.2f,area=%.2f\n",a,b,c,s(a,b,c),area(s(a,b,c),a,b,c));
}