Bài toán tam giác không có lỗi mà chạy không được trên codeblocks

mọi người giúp em với ạ


Đề: NHập độ dài 3 cạnh tam giác
a. Ktra xem 3 cạnh có hợp thành tam giác không?
b. Ktra xem tam giác gì?

# (thăng) include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    float a,b,c;
    printf ("hay nhap do dai canh cua tam giac: \n");
    scanf ("%f%f%f",a,b,c);
   if ((a+b)> c && (a+c)>b && (b+c)>a && a*b*c>0 ) printf ("3 canh nay lap thanh mot tam giac:");
   if (a==b && b==c) printf ("day la tam giac deu");
   else if (a==b || a==c || b==c) printf ("day la tam giac can");
   else if (a== sqrt(b*b+c*c)  || b== sqrt(a*a+c*c)  ||    c== sqrt(b*b+a*a)  ) printf ("day la tam giac vuong");
   else if ((a == sqrt(b*b+c*c) && b==c) || (b==sqrt(a*a+c*c) && a==c)||(c= sqrt(b*b+a*a) && b==a)) printf ("day la tam giac vuong can");
    else  printf ("day la tam giac thuong:");
    return 0;
}

Em phải để là scanf ("%f %f %f",&a,&b,&c); nhé.
Và thuật toán của em đang sai về logic đó. Khi anh nhập 4,5,9 thì kết quả trả về lại là tam giác thường

2 Likes

4 5 9 là tam giác thường mà a?

Em xem lại bất đẳng thức tam giác nhé!!!

Tổng hai cạnh bất kỳ phải lớn hơn cạnh còn lại, nếu bằng thì nó là đường thẳng luôn ròi

1 Like

Xem lại điều kiện để tạo thành 1 tam giác đi nhé. sai rồi đấy. dùng || chứ ko nên dùng &&.
ví dụ tam giác có 3 cạnh là 1,2,3. coi xem

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?