?>
Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон.Если существует такой треугольник, то определите его тип (равносторонний, равнобедренный, разносторонний) Пример входных данный Пример выходных данных a b c>> 1 2 1 Не существует a b c>> 2 2 2 Равносторонний a b c>> 20 20 30 Равнобедренный a b c>> 3 4 5 Разносторонний 1 что не правильно в моей программе? program qq; var a, b, c: integer; begin Read (a, b, c); if (a<>b) and (a<>c) and (c<>b) then Write ('Треугольник-разносторонний'); if (a=b) or (a=c) or (c=b) then Write ('Треугольник-равнобедренный'); if (a=b) and (a=c) and (c=b) then Write ('Треугольник-равносторонний'); if (a Write ('Треугольник-не существует'); end.
Ответы
1. У Вас равносторонний треугольник - это так же и равнобедренный. То есть на пример 2 2 2 у Вас выведет 'Треугольник--равносторонний'. Вообще, так оно и есть в математике, но может у Вас требуют, чтобы вывод был только один, тогда стоит этот момент обработать, о том как это сделать, в 4 пункте.
2. Последний if синтаксически некорректен, так как там отсутствует проверка логического выражения и пропущена закрывающая скобка.
3. Треугольник не существует, если сумма длин двух сторон не больше длины третьей стороны, то есть if (a + b <= c) or (a + c <= b) or (b + c <= a).
4. Чтобы вывод всегда был один, стоит записать все через if -else в следующем порядке: if проверка на существование else if проверка на равные стороны else if проверка на равнобедренность else разносторонний.