Theo mình vấn đề là ở (a==b==c) bạn nên (a==b && b==c) thì có lẽ được
yêu cầu là xem nó có phải là tam giác không? nếu là tam giác thì xem nó là tam giác cân hay vuông hay đều, hay là tam giác thường.
Mình ko sửa dc giữa câu lệnh là tam giác cân hay đều. Mình nhập 3 cạnh bằng nhau nhưng mà nó vẫn báo là tam giác cân. ko báo đêù
Code:#include"conio.h" #include"stdio.h" #include"stdlib.h" int main() { int a,b,c,d; printf("\nnhap vao canh cua tam giac: "); scanf("%d",&a); printf("\nnhap vao canh cua tam giac: "); scanf("%d",&b); printf("\nnhap vao canh cua tam giac: "); scanf("%d",&c); if((a+b>c)&&(a+c>b)&&(b+c>a)) { printf("\nday la "); if(a==b==c) { printf("tam giac deu"); } else if ((a*a==b*b+c*c)||(b*b==a*a+c*c)||(c*c==a*a+b*b)) { printf("tam giac vuong"); } else if((a==b!=c)||(b==c!=a)||(a==c!=b)) { printf("tam giac can"); } else { printf("tam giac thuong"); } } else { printf("\nkhong phai la tam giac"); } getch(); }
Theo mình vấn đề là ở (a==b==c) bạn nên (a==b && b==c) thì có lẽ được
bạn nhocxinh nói đúng đó
Code:#include"conio.h" #include"stdio.h" #include"stdlib.h" int main() { int a,b,c,d; printf("\nnhap vao canh cua tam giac: "); scanf("%d",&a); printf("\nnhap vao canh cua tam giac: "); scanf("%d",&b); printf("\nnhap vao canh cua tam giac: "); scanf("%d",&c); if((a+b>c)&&(a+c>b)&&(b+c>a)) { printf("\nday la "); if((a==b)&&(a==c)) { printf("tam giac deu"); } else if ((a*a==b*b+c*c)||(b*b==a*a+c*c)||(c*c==a*a+b*b)) { printf("tam giac vuong"); } else if((a==b!=c)||(b==c!=a)||(a==c!=b)) { printf("tam giac can"); } else { printf("tam giac thuong"); } } else { printf("\nkhong phai la tam giac"); } getch(); }
như này được ko ?Code:#include<stdio.h> #include<conio.h> void main() { int c1,c2,c3 ; printf("\nnhap do dai 3 canh cua tam giac :") ; scanf("%d%d%d",&c1,&c2,&c3) ; if(c1==c2 || c1==c3) { if( c2==c3 ) printf("day la tam giac deu ") ; else printf("day la tam giac can ") ; } else if (c1*c1 + c2*c2 == c3*c3 || c1*c1 + c3*c3 == c2*c2||c3*c3 + c2*c2 == c1*c1 ) { printf("day la tam giac vuong ") ; } else if ( c1+c2<c3 || c1+c3<c2 || c2+c3<c1 ) { printf("day ko phai la tam giac") ; } else printf(" day la tam giac nhon ") ; } }
@asuka : code của bạn mình thử nhập cạnh 1 ,2 ,3 vào thì nó ra điều kiện " không phải là tam giác " . Còn vài trường hợp nữa .
Đã được chỉnh sửa lần cuối bởi nguoithuba009 : 08-04-2008 lúc 09:37 AM.
- Nếu các bạn ko muốn rối lên vì cứ if ...else...liên tục với các điều kiện thì mình sử dụng hàm nhé! cũng if ...else... nhưng mà dễ đọc hơn nhiều!
C Code:
#include <stdio.h> int laTamGiac(int a, int b, int c) { if (a+b>c && a+c>b && b+c>a) { return 1; } else { return 0; } } int laTamGiacVuong(int a, int b, int c) { if (a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a) { return 1; } else { return 0; } } int laTamGiacCan(int a, int b, int c) { if (a==b||b==c||a==c) { return 1; } else { return 0; } } void main() { unsigned int A=0,B=0,C=0; do{ }while(A<=0||B<=0||C<=0); //3 canh phai >0 if (laTamGiac(A,B,C)) { if (A==B&&B==C) { } else if (laTamGiacCan(A,B,C)&&laTamGiacVuong(A,B,C)) { } else if (laTamGiacCan(A,B,C)) { } else if (laTamGiacVuong(A,B,C)) { } else { } } else { } }
@nguoithuba009: nếu là bộ (1,2,3) ng ta xuất ra "ko phải tam giác đúng rồi mà cậu " ! Sai chỗ nào?Làm jì có tam giác nào là (1,2,3)
No way, No success..