//代码的这个选择条件不是很完美,欢迎各位评论指出
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,s,area;
printf("请输入三角形的三条边:");
scanf("%f%f%f",&a,&b,&c);
s = (a+b+c)/2;
if(a+b>c && a+c>b && b+c>a){
if((a == c||a == b||b == c)){
printf("此三角形为等腰三角形\n");
if(a == b == c){
printf("此三角形为等边三角行\n");
}
}
else if((a == c||a == b||b == c)&&(c*c == a*a + b*b)||(b*b == a*a + c*c)||(a*a == b*b + c*c)){
printf("此三角形为等腰直角三角行\n");
}
else if((c*c == a*a + b*b)||(b*b == a*a + c*c)||(a*a == b*b + c*c)){
printf("此三角形为直角三角行\n");
}else{
printf("此三角形为一般三角形");
}
area = sqrt(s*(s-a)*(s-b)*(s-c)); //使用海伦公式
printf("三角形的面积为area:%.2f\n",area);
}
else{
printf("这三条边不可构成三角形");
}
return 0;
}