Алгоритм написания типов треугольника

Я столкнулся с таким вопросом:

Напишите алгоритм, который считывает три целых числа a, b, c, представляющих стороны треугольника.
Затем выведите тип представленного треугольника (разносторонний, равносторонний, равнобедренный).
Предположим, что изображен правильный треугольник.

Я хотел бы получить отзывы об ошибках, которые может представлять мой алгоритм, или о том, что я могу сделать, чтобы улучшить его последовательность:

step 1)  Start
step 2)  Declare int a,b,c
step 3)  Prompt a,b,c
step 4)  Read a,b,c
step 5)  If (a<>b and b<>c and c<>a) then
step 6)  Print "Scalene Triangle"
step 7)  Elseif((a=b and a != c) or (a=c and a!=b) or (b=c and b!=a))
step 8)  Print "Isoceles Triangle"
step 9)  Elseif ((a=b & b!=c ) or (a=c & c!=b) or (b=c & c!=a)) then
step 10) Print "Equilateral Triangle"
step 11) Endif
step 12) Stop

person IT ken    schedule 15.10.2014    source источник
comment
Шаг 7) else if ((a=b and a != c) or (a=c and a!=b) or (b=c and b!=a))   -  person ani627    schedule 15.10.2014
comment
Я бы сначала проверил наиболее специализированные, поэтому проверьте равносторонний, если это не поможет, проверьте Isoceles, а затем, если это не удастся, у вас должен быть разносторонний.   -  person Galik    schedule 15.10.2014
comment
Также будьте последовательны с использованием and и &, они обычно означают одно и то же, но они не всегда одинаковы с точки зрения порядка операций, и это может снова вас укусить.   -  person Nuclearman    schedule 28.10.2020


Ответы (2)


Есть 4 типа треугольников

Рассмотрим A, B и C как возможный трехсторонний треугольник, тогда

  1. Равнобедренный -> Если (A равно B, но не равно C) OR (B равно C, но не равно A)
  2. Скален -> Если A не равно B не равно C (все стороны разные)
  3. Равносторонний -> Если A равно B равно C (все стороны равны)
  4. Не треугольник -> Если сумма любых двух сторон меньше, чем равна трети, сторона A + B меньше, чем равна C ИЛИ C + A меньше, чем равна B ИЛИ C + B меньше, чем равно A
person Zeeshan Rafique    schedule 23.05.2020

Вы также получите равносторонний треугольник в виде равнобедренного треугольника, поэтому измените его на:

  • ...
  • Если ((a = b & b! = C) или (a = c & c! = B) или (b = c & c! = A)), то
  • Печать "Скаленовый треугольник"
  • ...
person RE60K    schedule 15.10.2014