题目描述解题代码测试用例
题目描述输入三角形的3条边的长度值(均为正整数),判断是否能为直角三角形的3个边长。如果可以,则输出 yes,如果不能,则输出 no。如果根本无法构成三角形,则输出 no a triangle。
解题代码
【思路】先将三遍从小到大排序,再判断“两边之和大于第三边”,最后用勾股定理判断是否为直角。
#includeint main(){ int a,b,c,t; scanf("%d%d%d",&a,&b,&c); // 从小到大排序 if(a>b){t=a;a=b;b=t;} //执行完毕之后a<=b if(a>c){t=a;a=c;c=t;} //执行完毕之后a<=c,且a<=b依然成立 if(b>c){t=b;b=c;c=t;} //执行完毕之后a<=b<=c //检查是否能够成三角形 if(a+b>c){ //检查是否为直角三角形 if(c*c==a*a+b*b) printf("yes"); else printf("no"); } else{ printf("not a triangle"); } return 0; }
测试用例
| 输入 | 输出 | |
|---|---|---|
| 测试1 | 3 4 5 | yes |
| 测试2 | 3 4 6 | no |
| 测试3 | 3 5 1 | not a triangle |
| 测试4 | 5 4 3 | yes |



