Kiểm tra 3 số có tạo thành một tam giác hay không?

Kiểm tra 3 số có tạo thành một tam giác hay không?
Nếu có thì đó là tam giác gì.
IDE: Dev C++: http://sourceforge.net/projects/orwelldevcpp/

Input: 3 số a,b,c kiểu int
Output: In ra kết quả loại tam giác.

Phân tích:

- Điều kiện tạo thành 1 tam giác khi tổng 2 cạnh lớn hơn hoặc bằng cạnh còn lại.
- Điều kiện tạo thành tam giác đều khi a = b = c
- Điều kiện tạo thành tam giác cân khi 2 cạnh bằng nhau
- Điều kiện tạo thành tam giác vuông cân khi cân và vuông tạo thành tam giác vuông.
- Điều kiện tạo thành tam giác vuông khi tổng bình phương 2 cạnh bằng bình phương cạnh còn lại.

- Ta xây dựng hàm kiểm tra tam giác vuông: checkRightTriangle.
- Ta xây dựng hàm kiểm tra loại tam giác: checkTriangle.
xét kiểu kiện như sau:

- Nếu không có khả năng tạo thành tam giác -> return;
- Nếu 3 cạnh bằng nhau -> tam giác đều, return.
- Nếu 2 cạnh bằng nhau:
  + Nếu vuông -> tam giác vuông cân, return.
  + Nếu không vuông -> Tam giác cân, return.
- Nếu vuông -> Tam giác vuông, return.
-> Tam giác thường

C
//////////////////////

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "stdio.h"  
 int checkRightTriangle(int a, int b, int c) {  
      int a1 = a * a;  
      int b1 = b * b;  
      int c1 = c * c;  
      if(a1 + b1 == c1 || b1 + c1 == a1 || a1 + c1 == b1)  
           return 1;  
      return 0;  
 }  
 void checkTriangle(int a, int b, int c){  
      printf("Check tam giac : %d %d %d: ", a, b, c);  
      if(a + b < c || a + c < b || b + c < a){  
           printf("Day khong phai tam giac\n");  
           return;  
      }  
      if(a == b && b == c){  
           printf("Day la tam giac deu \n");  
           return;  
      }  
      if(a == b || b == c || c == a){  
           if(checkRightTriangle(a, b, c))  
                printf("Day la tam giac vuong can\n");  
           else  
                printf("Day la tam giac can\n");  
           return;  
      }  
      if(checkRightTriangle(a, b, c))  
      {  
           printf("Day la tam giac vuong\n");  
           return;  
      }  
      printf("Day la tam giac thuong\n");  
 }  
 int main(){  
      checkTriangle(3,1,1);  
      checkTriangle(1,2,3);  
      checkTriangle(3,4,5);  
      checkTriangle(3,3,3);  
      checkTriangle(5,5,8);  
      checkTriangle(8,2,5);  
      char t = 'Y';  
      int a, b, c;  
      while(t == 'Y'){  
           printf("Moi ban nhap a b c: ");  
           scanf("%d %d %d", &a,&b,&c);  
           checkTriangle(a,b,c);  
           printf("Ban muon thu lai khong? Y/N: ");  
           scanf(" %c", &t);  
      }  
      getchar();  
 }  
C++
///////////////////////

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>  
 using namespace std;  
 int checkRightTriangle(int a, int b, int c) {  
      int a1 = a * a;  
      int b1 = b * b;  
      int c1 = c * c;  
      if(a1 + b1 == c1 || b1 + c1 == a1 || a1 + c1 == b1)  
           return 1;  
      return 0;  
 }  
 void checkTriangle(int a, int b, int c) {  
      cout << "Check Tam giac: " << a << " " << b << " " << c << ": ";  
      if(a + b < c || a + c < b || b + c < a) {  
           cout << "Day khong phai tam giac" << endl;  
           return;  
      }  
      if(a == b && b == c) {  
           cout << "Day la tam giac deu " << endl;  
           return;  
      }  
      if(a == b || b == c || c == a) {  
           if(checkRightTriangle(a, b, c))  
                cout << "Day la tam giac vuong can" << endl;  
           else  
                cout << "Day la tam giac can" << endl;  
           return;  
      }  
      if(checkRightTriangle(a,b,c)) {  
           cout << "Day la tam giac vuong" << endl;  
           return;  
      }  
      cout << "Day la tam giac thuong" << endl;  
 }  
 int main() {  
      checkTriangle(3,1,1);  
      checkTriangle(1,2,3);  
      checkTriangle(3,4,5);  
      checkTriangle(3,3,3);  
      checkTriangle(5,5,8);  
      checkTriangle(8,2,5);  
      char t = 'Y';  
      int a, b, c;  
      while(t == 'Y') {  
           cout << "Moi ban nhap a b c: ";  
           cin >> a >> b >> c;  
           checkTriangle(a,b,c);  
           cout << "Ban muon thu lai khong? Y/N: ";  
           cin >> t;  
      }  
      system("pause");  
 }  

Nhận xét

Bài đăng phổ biến từ blog này

Đổi chỗ chữ số đầu tiên và chữ số cuối cùng của một số

Chuyển đơn vị đo nhiệt độ C và F

Tìm số đẹp (lộc phát)