输出三角形的三边长,判断能不能组成三角形?如果能,计算三角形的面积。
让你先判断能不能成三角形,你判断的代码呢
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,s,area;
a=3.67;
b=5.43;
c=6.21;
s=(a+b+c)/2;
area=sqrt(s*(s-a)(s-b)(s-c));
printf(“a=%f\tb=%f\tc=%f\n”,a,b,c);
printf(“area=%f\n”,area);
return 0;
}
思路:
通过输入三个数a、b、c,判断是否能构成三角形,判断条件是三角形中任意两边之和大于第三边,即 a+b>c, a+c>b, b+c>a。
如果可以构成三角形,求解三角形的面积:用海伦公式 s=sqrt(p(p-a)(p-b)*(p-c)) ,其中p = (a+b+c)/2。
输出结果,保留两位小数。
代码示例:
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, p, s;
printf("请输入三角形的三边长:\n");
scanf("%f%f%f", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a) {
p = (a + b + c) / 2;
s = sqrtf(p * (p - a) * (p - b) * (p - c));
printf("可以构成三角形,面积为:%.2f\n", s);
} else {
printf("无法构成三角形\n");
}
return 0;
}
代码解释:
定义三个变量a、b、c存储输入的三角形三边长,用scanf函数进行输入。
判断输入的三边长是否能构成三角形,判断条件已经在思路中给出,用if语句实现。
如果可以构成三角形,计算三角形面积,用了math.h头文件中的sqrtf函数求平方根,以及pow函数求幂次方(这里没用到,只是演示)。
用printf函数输出结果,保留两位小数可以用%.2f格式控制符。