11 Ocak 2013 Cuma

判斷是何種三角形


當三個邊長能夠構成三角形時,再判斷該三角形為鈍角、銳角或是直角三角形,其判別方法如下:

1. 直角三角形:其中有兩個邊的平方和等於第三邊的平方。
2. 鈍角三角形:其中有兩個邊的平方和小於第三邊的平方。
3. 銳角三角形:任兩邊的平方和大於第三邊的平方。
輸入三個整數

輸出
顯示直角三角形(Right Triangle)、鈍角三角形(Obtuse Triangle)、銳角三角形(Acute Triangle)或無法構成三角形(Not Triangle)。

範例輸入
5 12 13
範例輸出
Right Triangle


  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <math.h>  
  4.   
  5. float is(float a, int b, int c)  
  6. {  
  7.     int min, max, middle;  
  8.     if(a >= b && a >= c)  
  9.     {  
  10.         max = a;  
  11.         if(b >= c)  
  12.         {  
  13.             middle = b;  
  14.             min = c;  
  15.         }  
  16.         else  
  17.         {  
  18.             middle = c;  
  19.             min = b;  
  20.         }  
  21.     }  
  22.     else if(b >= a && b >= c)  
  23.     {  
  24.         max = b;  
  25.         if(a >= c)  
  26.         {  
  27.             middle = a;  
  28.             min = c;  
  29.         }  
  30.         else  
  31.         {  
  32.             middle = c;  
  33.             min = a;  
  34.         }  
  35.     }  
  36.     else  
  37.     {  
  38.         max = c;  
  39.         if(a >= b)  
  40.         {  
  41.             middle = a;  
  42.             min = b;  
  43.         }  
  44.         else  
  45.         {  
  46.             middle = b;  
  47.             min = a;  
  48.         }  
  49.     }  
  50.     if(min + middle > max)  
  51.     {  
  52.         return 1;  
  53.     }  
  54.     return 0;  
  55. }  
  56. int control_acute (int a, int b, int c)  
  57. {  
  58.     if(!(pow(a, 2) + pow(b, 2)) > pow(c, 2)){}  
  59.     else if(!(pow(a, 2) + pow(c, 2)) > pow(b, 2)){}  
  60.     else if((pow(b, 2) + pow(c, 2)) > pow(a, 2))  
  61.     return 1;     
  62.     {  
  63.     }  
  64.     return 0;  
  65. }  
  66. int control_obtuse (int a, int b, int c)   
  67. {  
  68.     if((pow(a, 2) + pow(b, 2)) < pow(c, 2))  
  69.     {  
  70.         return 1;  
  71.     }  
  72.     else if((pow(a, 2) + pow(c, 2)) < pow(b, 2))  
  73.     {  
  74.         return 1;  
  75.     }  
  76.     else if((pow(b, 2) + pow(c, 2)) < pow(a, 2))  
  77.     {  
  78.         return 1;  
  79.     }  
  80.     return 0;  
  81. }  
  82.   
  83. int control_right (int a, int b, int c)   
  84. {  
  85.     int ar = a * a;  
  86.     int br = b * b;  
  87.     int cr = c * c;  
  88.     if(ar + br == cr)  
  89.     {  
  90.         return 1;  
  91.     }  
  92.     else if(ar + cr == br)  
  93.     {  
  94.         return 1;  
  95.     }  
  96.     else if(cr + br == ar)  
  97.     {  
  98.         return 1;  
  99.     }  
  100.     return 0;  
  101. }  
  102. int main(){  
  103.     int a,b,c;   
  104.     scanf("%d %d %d", &a,&b,&c);  
  105.         if(!is(a, b, c))  
  106.         {  
  107.             printf("Not Triangle\n");  
  108.         }  
  109.         else if(control_right(a, b, c))  
  110.         {  
  111.             printf("Right Triangle\n");  
  112.         }  
  113.         else if(control_obtuse(a, b, c))  
  114.         {  
  115.             printf("Obtuse Triangle\n");  
  116.         }  
  117.         else if(control_acute(a, b, c))  
  118.         {  
  119.             printf("Acute Triangle\n");  
  120.         }  
  121.       
  122.   system("PAUSE");    
  123.   return 0;  

Hiç yorum yok:

Yorum Gönder

Binary Conversion

Problem Description Convert two binary numbers into two decimal numbers and compute their sum. Your program has to convert two binary number...