#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)
.