0

Код:

#include <stdio.h>
#include <locale.h>
#include <math.h>

void main() { float a = 0, b = 0, c = 0;

setlocale(LC_ALL, &quot;Rus&quot;);

printf(&quot;Введите стороны треугольника: \n&quot;);
printf(&quot;a=&quot;);
scanf(&quot;%d&quot;, &amp;a);
printf(&quot;\nb=&quot;);
scanf(&quot;%f&quot;, &amp;b);
printf(&quot;\nc=&quot;);
scanf(&quot;%f&quot;, &amp;c);

if (a*b == b*b+c*c){
    printf(&quot;Треугольник прямоугольный.&quot;);
}

else if (b*b == a*a+c*c){
    printf(&quot;Треугольник прямоугольный.&quot;);
}

else if (c*c == a*a+b*b){
    printf(&quot;Треугольник прямоугольный.&quot;);
}

else{
    printf(&quot;Треугольник не прямоугольный.&quot;);
}


}

Задача: Проверить является ли треугольник прямоугольным. Пробовал египетский - не работает.

sss
  • 11
  • 2
  • scanf("%d", &a); -> scanf("%f", &a);. 2) a*b -> a*a 3) Не проверять числа с плавающей точкой на строгое равенство в силу особенностей арифметики с плавающей точкой.
  • – wololo Sep 19 '21 at 16:55
  • А вы бы еще более странное условие написали — a*b == b*b+c*c – Harry Sep 19 '21 at 17:00