![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Sirius159 |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 5 Регистрация: 8.4.2012 Город: Минск Вы: студент ![]() |
Задача заключалась в том, чтобы вывести на черный экран три максимальных числа (игнорируя дубликаты) последовательности чисел, не превосходящих по модулю 10^9.
Вот мой код: program qwe1; uses crt; label 1; var i,n,f,v,max:longint; a: array [1..10] of longint; Begin clrscr; writeln('Vvedite kol-vo cisel: '); readln(n); 1: writeln('Vvodimie cisla ne doljni previshati 10^9'); for i:=1 to n do begin write(i,'-ii element: '); readln(a[i]); end; for i:=1 to n do if abs(a[i])>1000000000 then goto 1; max:=a[i]; for i:=1 to n do if a[i]>max then max:=a[i]; for i:=1 to n do begin if (a[i]<max) and (a[i]>a[i+1]) and (a[i]>a[i-1]) then v:=a[i]; end; for i:=1 to n do begin if (a[i]<v) and (a[i]>a[i+1]) and (a[i]>a[i-1]) then f:=a[i]; end; writeln(f,' ',v,' ',max); readln; End. Но он не работает. В чем ошибка? И как правильнее составить алгоритм? |
![]() ![]() |
граф Монте-Кристо |
![]()
Сообщение
#2
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое ![]() |
Если честно, не оченб разобрался в Вашем коде, равно как и в алгоритме.
Мне последовательность действий представляется такой: заводите массив из трёх элементов и добавляете туда первые три элемента входного массива. Далее в цикле каждый элемент входного массива сравниваете с элементами массива из трёх элементов. Если он больше хотя бы одного из трёх - удаляете наименьший из трёх и на его место ставите этот элемент, если нет, то двигаетесь дальше. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 29.5.2025, 15:52 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru