c语言a,b,c为三角形的三边。定义两个带参数的宏,一个用来求s,另一个用来求area。写程序用带参数的宏求三角形面积(注意:在三角形中,两边之和大于第三边,结果保留两位小数)。
时间: 2024-05-08 22:21:02 浏览: 81
以下求解三角形面积的C语言代码,其中使用了两个带参数的宏,分别用来求解三角形面积和半周长s:
```c
#include<stdio.h>
#include<math.h>
#define s(a,b,c) ((a)+(b)+(c))/2.0
#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)))
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 ar = area(a,b,c);
printf("三角形面积为:%.2f\n", ar);
}
return 0;
}
```
在上述代码中,宏`s(a,b,c)`用来求解三角形的半周长s,即:
$$
s = \frac{a+b+c}{2}
$$
宏`area(a,b,c)`则用来求解三角形面积,即:
$$
S = \sqrt{s(s-a)(s-b)(s-c)}
$$
其中,a、b、c分别代表三角形的三条边长。
在主函数中,先通过`scanf()`函数获取用户输入的三角形三条边长,并使用条件判断语句检查是否可以构成三角形。如果可以构成,则使用`area(a,b,c)`宏计算并输出三角形面积;否则输出错误提示信息。注意,最终输出的结果保留了两位小数。
阅读全文