2.三角形的面积为: area =/ s ( s - a )( s - b ) s - c ) 其中: s =-( a + b + c ) a , b , c 为三角形的三边。定义两个带参数的宏,一个用来求 s ,另一个用来求 area 。写程序用带参数的宏求三角形面积(注意:在三角形中,两边之和大于第三边)
时间: 2024-03-16 17:47:21 浏览: 68
好的,以下是两个带参数的宏定义和求三角形面积的程序代码:
```c
#include <stdio.h>
#define SEMI_PERIMETER(a, b, c) ((a + b + c) / 2.0)
#define TRIANGLE_AREA(a, b, c) (sqrt(SEMI_PERIMETER(a, b, c) * (SEMI_PERIMETER(a, b, c) - a) * (SEMI_PERIMETER(a, b, c) - b) * (SEMI_PERIMETER(a, b, c) - c)))
int main() {
double a, b, c;
printf("请输入三角形三边的长度:\n");
scanf("%lf %lf %lf", &a, &b, &c);
if (a + b <= c || a + c <= b || b + c <= a) {
printf("输入的三边无法构成三角形!\n");
} else {
double s = SEMI_PERIMETER(a, b, c);
double area = TRIANGLE_AREA(a, b, c);
printf("三角形的面积为:%.2lf\n", area);
}
return 0;
}
```
运行程序后,输入三角形三边的长度,程序会自动计算并输出三角形的面积。需要注意的是,程序中增加了对输入的三边是否能够构成三角形的判断,以避免出现非法的计算结果。
阅读全文