问题描述:
输入三条边的边长,如果这三条边可以构成三角形,输出三角形的面积(保留到小数点后6位)和类型,否则输出“不能构成三角形”
PS:
从上到下依次检测三角形的类型,只要有一个满足后面不用再检测了,直接输出即可:
等边三角形
等腰三角形
直角三角形
普通三角形
参考代码
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, p, area;
scanf_s("%lf%lf%lf", &a, &b, &c);
if (a + b > c && b + c > a && a + c > b) //满足任意两边之和大于第三边才能构成三角形
{
p = (a + b + c) / 2;//周长的一半
area = sqrt(p * (p - a) * (p - b) * (p - c));//三角形面积公式
printf("%.6lf\n", area);
if (a == b && b == c && a == c)
printf("等边三角形\n");
else if (a == b || b == c || a == c)
printf("等腰三角形\n");
else if (a * a + b * b == c * c)
printf("直角三角形\n");
else
printf("普通三角形\n");
}
else
printf("不能构成三角形\n");
return 0;
}
运行结果: