Задача
Определить вид треугольника (равносторонний, равнобедренный, разносторонний) по заданным длинам его сторон.
Входные данные
В единственной строке задано 3 целых числа — длины сторон треугольника. Длины сторон не превышают 100.
Выходные данные
В единственной строке вывести 1, если треугольник равносторонний, 2 если равнобедренный и 3 если разносторонний.
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> using namespace std; int main() { int a,b,c; cin>> a >> b >> c; if (a==b && b==c && a==c) { cout << "1"; } else if (a==b||b==c||a==c) { cout << "2"; } else { cout << "3"; } return 0; } |
Тесты
№ | Входные данные | Выходные данные |
1 | 5 5 5 | 1 |
2 | 4 5 4 | 2 |
3 | 4 5 6 | 3 |
Решение
Для решения задачи нам нужно уметь определять виды треугольников. Нам даны равносторонний, равнобедренный и разносторонний треугольники. У равностороннего треугольника все стороны равны, у равнобедренного равны лишь два бедра, а у разностороннего — стороны не равны.
Для начала задаем три переменные а, b и c, которые равны сторонам треугольника. Вводим их произвольно. Для того, чтобы определить какой это треугольник мы задаем параметры :
- если [latex]a=b=c[/latex] , то есть все стороны равны, то у нас равносторонний треугольник;
- если[latex] a=b [/latex]или [latex]b=c[/latex] или [latex]a=c[/latex] , то есть две из трех сторон треугольника равны, то у нас равнобедренный треугольник;
- если [latex]a\neq b\neq c[/latex] , стороны не равны, то у нас разносторонний треугольник.
Задача взята с сайта.
Переход на страницу с полностью выполненным данным заданием здесь.
— Формулы так не вставляются. Возможно Вы и сами заметили, что результат плохой? Посмотрите в разделе Questions, как это делается.
— Проверка «a!=b!=c» не только излишня, но и делает совсем не то, чего Вы от неё ожидаете. Например, условие if(-3 > -2 > -1)… истинное (с точки зрения С++) утверждение. Разберитесь почему.
— Ключевые слова не самые удачные. Например, среди ключевых нет слов «равносторонний», «равнобедренный».
Спасибо за замечания, всё исправлено
Молодец. Принято.