Программа, определяющая треугольник, на языке C
Задача. Вводятся три целых числа. Определить, может ли существовать треугольник с такими сторонами, и если да, то какой он: разносторонний, равнобедренный или равносторонний?
Пояснение. Треугольник существует только тогда, когда сумма любых его двух сторон больше третьей стороны (или равна ей в случае вырожденного треугольника). У разностороннего треугольника все стороны разные, у равнобедренного - две равны между собой, у равностороннего - все равны.
Для решения данной задачи следует воспользоваться вложенными конструкциями if-else и логическими операторами "И" и "ИЛИ" (в языке программирования C обозначаются как && и ||).
Алгоритм решения задачи:
- Сначала выясняется, существует ли треугольник вообще. Если он существует, то программа продолжает выполняться дальше.
- Первым делом проверим, что ни одна из сторон не равна другой. Если это так, то треугольник разносторонний. Программа завершится на этом этапе. Если это не так, то программа перейдет к третьей проверке.
- Поскольку во втором пункте был исключен вариант, что все стороны разные, то либо они все равны друг другу, либо существует какая-то пара равных сторон. Проще всего проверить, что все стороны равны друг другу. В таком случае треугольник равносторонний. Если же это не так, то остается только один вариант - треугольник равнобедренный.
Исходный код на C:
#include <stdio.h> int main() { int a, b, c; printf("a = "); scanf("%d", &a); printf("b = "); scanf("%d", &b); printf("c = "); scanf("%d", &c); if (a+b <= c || a+c <= b || b+c <= a) // если хотя бы одно условие выполняется printf("Треугольник не существует.\n"); else if (a != b && a != c && b != c) // если все условия выполняются printf("Разносторонний\n"); else if (a == b && b == c) printf("Равносторонний\n"); else printf("Равнобедренный\n"); }
