【if...else】三角形判斷
阿新 • • 發佈:2017-09-22
med blog 小貼士 nbsp ... 根據 code abs ner
給定三條邊的長度,判斷能否組成三角形,如果可以,判斷三角形的形狀。
輸入要求
一組數據,每行三個實數,在(0,10]之間
輸出要求
根據每行的數據判斷,如果不能組成三角形,則輸出“Not a triangle”;如果是“等腰三角形”,則輸出“Isosceles triangle”;如果是“直角三角形”,則輸出“Right triangle”;如果是“等腰直角三角形”,則輸出“Isosceles Right triangle”;如果是“等邊三角形”,則輸出“Equilateral triangle”;否則,輸出“General triangle”。
測試數據
輸入示例
1.4142 1.4142 2
1.0000 4.0000 5.0000
輸出示例
Isosceles Right triangle
Not a triangle
小貼士
比較浮點數是否相等,比較特殊,最好不要用 ==
比如浮點數a和b進行比較,寫成if(a ==b)有時也許會出現你不期望出現的情況
墻裂建議寫成if(fabs(a -b) <= 0.0001)
/*
首先我們可以先判斷最特殊的三角形--“等邊三角形”
然後我們可以先判斷等腰類型的三角形(也可以先判斷直角三角行,隨自己喜歡),我們知道“等腰直角三角形”範圍要比“等腰三角形”小,所以我們先判斷“等腰直角三角形”再判斷“等腰三角形”
之後我們判斷“直角三角形”,再後判斷“一般三角形”,
最後,如果以上條件都不符合了,那就不是三角形了。
*/
1 #include<stdio.h> 2 int main() 3 { 4 double a,b,c; 5 scanf("%lf %lf %lf",&a,&b,&c); 6 if(a == b && c == a) 7 { 8 /*等邊三角形*/ 9 printf("Equilateral triangle\n"); 10 } 11 else if(a == b || a == c || c == b) 12 { 13 /*先判斷是否為等腰*/ 14 if(a*a + b*b == c*c || a*a + c*c == b*b || c*c + b*b == a*a)//再判斷是否有直角存在 15 printf("Isosceles Right triangle\n"); 16 else //不是等腰直角三角形的情況,那就是一般的等腰三角形了 17 printf("Isosceles triangle\n"); 18 } 19 else if(a*a + b*b == c*c || a*a + c*c == b*b || c*c + b*b == a*a) 20 { 21 /*判斷是否為直角三角形*/ 22 printf("Right triangle\n"); 23 } 24 else if(a + b > c && a + c > b && c + b > a) 25 { 26 /*判斷是否為一般三角形 */ 27 printf("General triangle\n"); 28 } 29 else 30 { 31 /*不是三角形 */ 32 printf("Not a triangle\n"); 33 } 34 return 0; 35 }
【if...else】三角形判斷