Распознавание типа треугольника в C

#c

Вопрос:

в этом проекте я должен распознать тип треугольника, получив их стороны в качестве входных данных . компиляция хороша, но результат не соответствует реальной математике .

 #include <stdio.h>

int main()
{

int a , b , c;

int A,B,C;
A=a*a  ;
B=b*b ;
C=c*c ;
printf("Enter the biggest siden");
scanf("%d",amp;a);
printf("Enter the second siden");
scanf("%d",amp;b);
printf("Enter the third siden");
scanf("%d",amp;c);

if(A=B C) printf("Right");

if(A<B C) printf("OBTUSE");

else if(a<b c)  printf("ACUTE");


return 0 ;

}
 

Комментарии:

1. A=a*a Вам необходимо установить a значения (и все остальные значения) перед их использованием. Переместите эти назначения после того, как они будут установлены scanf вызовами.

2. Кроме того , if(A=B C) необходимо, чтобы if(A==B C)

3. И для лучшей практики всегда следует проверять возвращаемое значение вызовов функций, таких как scanf .

4. Для лучшей практики скомпилируйте с -Wall . Это пометило бы назначение A = a * a; как использующее неинициализированное значение a

Ответ №1:

оператор if имеет » = «вместо»==», и вычисления должны быть установлены после функций scanf. код:

 
#include <stdio.h>

int main()
{

    int a, b, c;

    int A, B, C;

    printf("Enter the biggest siden");
    scanf_s("%d", amp;a);
    printf("Enter the second siden");
    scanf_s("%d", amp;b);
    printf("Enter the third siden");
    scanf_s("%d", amp;c);

    A = a * a;
    B = b * b;
    C = c * c;

    if (A == (B   C)) printf("Right");

    if (A < (B   C)) printf("OBTUSE");

    else 
        printf("ACUTE");


    return 0;

}
 

Комментарии:

1. Хороший ответ, но условие для тупого треугольника должно быть if (A > B C) .