Определить вид треугольника: прямоугольный, остроугольный или тупоугольный - C (СИ)
Формулировка задачи:
Даны вещественные положительные числа a,b,c. Если существует треугольник со сторонами a,b,c, то: определить его вид(прямоугольный, остроугольный или тупоугольный)
Решение задачи: «Определить вид треугольника: прямоугольный, остроугольный или тупоугольный»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,"rus");
int a,b,c,max;
puts("Сторона а= "); //Вводим стороны
scanf("%d",&a);
puts("\nСторона b= ");
scanf("%d",&b);
puts("\nСторона c= ");
scanf("%d",&c);
while(a+b<c || b+c<a || c+a<b) //Проверка
{
printf("\nТреугольника с введенными сторонами не существует\nПопробуйте еще раз\n");
puts("\nСторона а= ");
scanf("%d",&a);
puts("\nСторона b= ");
scanf("%d",&b);
puts("\nСторона c= ");
scanf("%d",&a);
}
if(c>a&&c>b) //Ищем максимальную сторону
max=c;
if(a>c&&a>b)
{
max=a;
a=c;
}
if(b>a&&b>c)
{
max=b;
b=c;
}
if((a*a+b*b)==(max*max)) //определяем треугольник
printf("Треугольник прямоугольный");
if((a*a+b*b)>(max*max))
printf("Треугольник тупоугольный");
if((a*a+b*b)<(max*max))
printf("Треугольник остроугольный");
return 0;
}
Объяснение кода листинга программы
- Ввод сторон треугольника с помощью функции scanf.
- Проверка на существование треугольника с помощью условия a + b < c || b + c < a || c + a < b.
- Если треугольник не существует, выводится сообщение об ошибке и программа возвращается к шагу 2.
- Поиск максимальной стороны треугольника с помощью условий if.
- Определение типа треугольника с помощью условий if и вывода соответствующего сообщения.
- Возврат значения 0, означающего успешный конец работы программы.