• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Помогите С Интересной Программой На Си)

  • Автор темы Morgan8
  • Дата начала
M

Morgan8

Здравствуйте!Есть проблемы с написанием программы на языке СИ.
Нужно написать программу ,которая вычисляет количество различных треугольников,которые могут быть собраны из лучей разной длины(вводим сами)

При входе обязательно надо вводить длину лучей(и не обязательно этих лучей три ,может и больше,но Не меньше),при выходе обязательно выводить сколько треугольников можно составить.(Обязательно чтоб треугольники как например 3-4-5 и 5-4-3 считались идентичными)
Также программа обязана определить неправильный ввод(и чтобы выводило ошибку и завершала работу).

P.S.Это одна из первых моих программ,я догадываюсь как сделать ввод данных ,а с тем чтоб программа могла определить сколько треугольников выйдет у меня проблемы.Прошу помочь!Спасибо за внимание!
 
V

Vadik(R)

Если программу стоит делать без всяких оптимизаций, то первое, что приходит на ум - полный перебор. Выборка 3 чисел из него и проверка, могут ли быть они сторонами треугольника.
Если могут, то, отсортировать в каком-либо порядке. Проверить массив уже найденных треугольников на наличие текущего. Если такого не найдётся - то добавить его в массив.
Если стоит оптимизировать скорость работы программы, то, стоит ещё подумать, но как минимум из входных лучей можно выбросить те, которые повторяются больше трёх раз: 3 3 3 3 3 3 3 3 4 5 => 3 3 3 4 5
 
W

Whatka

согласен с Vadik®
только я бы сортировал массив исходных значений,а потом выбирал бы перебором пару.И уже к ней при выполнении условий 3ую сторон.
Такие тройки в список,которыйпо идее должен быть упорядочен,при таком добавлении.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!