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ố

Đếm số thuần nguyên tố trong một khoảng

Số đẹp tăng giảm