Проверка треугольника и определение его типа - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задача: даны 3 числа, определить, являются ли они сторонами треугольника. Если являются, то какого? Условным оператором if-else пользоваться нельзя. Можно пользоваться условным выражением () ? () : ().
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int a, b, c;
double max_st, cos_max_ug, st1, st2;
printf("Enter 3 numbers:");
scanf("%d %d %d", &a, &b, &c);
 
max_st=(a > b) ? a : b;
st1 = (a < b) ? a : b;
st2 = (max_st < c) ? max_st : c;
max_st = (max_st > c) ? max_st  : c;
 
cos_max_ug = (st1*st1 + st2*st2 - max_st*max_st) / (2 * st1*st2);
 
(a < b + c) && (b < a + c) && (c < a + b) ? 
cos_max_ug < 0 ? printf("Treugolnik tupoj %s\n", st1 == st2 ? "ravnobedrennyj" : "raznostoronnij") :
cos_max_ug == 0.5 ? printf("Treugolnik ravnostoronnij\n") :
cos_max_ug == 0 ? printf("Treugolnik pryamougolnyj %s\n", st1 == st2 ? "ravnobedrennyj" : "raznostoronnij") :
printf("Treugolnik ostrougolnyj %s\n", st1 == st2 ? "ravnobedrennyj" : "raznostoronnij"): 
printf("Treugolnika net\n");
}
Вроде бы работает, но меня смущают 2 момента: 1. Когда присваиваю стороны 2. Когда пропускаю третий оператор в условном выражении. Получается () ? () ? () : () : () Так вообще можно?

Решение задачи: «Проверка треугольника и определение его типа»

textual
Листинг программы
cos_max_ug == 0.5

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы