判断三角形的类型,根据输入的三角形的三条边判断三角形的类型,并依次输出其类型和面积。
如果输入的信息不是三角形 则输出 no triangle。
输入示例:
1 3 4 5
输出示例:
right triangle,6.0
代码:
```C #include#include int main(){ int i,n; double a,b,c,s,A; scanf("%d",&n); // 输入将进行判断的三角形组数 for(i=1;i<=n;i++){ scanf("%lf%lf%lf",&a,&b,&c); // 输入三角形的三边长度 if(a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a){ //判断是不是三角形 s=(a+b+c)/2; //计算三角形半周长 A=sqrt(s*(s-a)*(s-b)*(s-c)); //利用海伦公式计算三角形面积 if(a==b && a==c) printf("equilateral triangle,%.1lfn",A); // 首先判断是不是等边三角形 else if(a==b || a==c || b==c){ if(fabs(a*a + b*b-c*c )<0.001|| fabs(a*a + c*c == b*b)<0.001 || fabs(c*c + b*b == a*a)<0.001) // 如果有两边相等则先判断是不是等腰直角三角形 printf("isosceles right triangle,%.1lfn",A); else printf("isosceles triangle,%.1lfn",A); // 不满足勾股定理即为等腰三角形 } else if(fabs(a*a + b*b-c*c )<0.001|| fabs(a*a + c*c == b*b)<0.001 || fabs(c*c + b*b == a*a)<0.001) //判断是不是直角三角形 printf("right triangle,%.1lfn",A); else printf("general triangle,%.1lfn",A); //以上条件均不满足则为普通三角形 }else printf("no triangle"); //不满足任意两边之和大于第三边的条件则输出不是三角形 } return 0; } ```
补充知识:
海伦公式:



