Minmax8. Дано целое число $$N$$ и набор из $$N$$ целых чисел. Найти номера первого и последнего минимального элемента из данного набора и вывести их в указанном порядке.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
program MinMax8; var i,N,Ni,Min1,Min2,Min1Num,Min2Num:Integer; begin Write('N:'); Readln(N); for i:=1 to N do begin Write(i,' элемент:'); Readln(Ni); if i=1 then begin Min1:=Ni; Min2:=Ni; Min1Num:=i; Min2Num:=i; end; if Ni<Min1 then begin Min1:=Ni; Min1Num:=i; end; if Ni<=Min2 then begin Min2:=Ni; Min2Num:=i; end; end; Writeln(Min1Num,' ',Min2Num); end. |
Другие задачи из раздела Minmax можно посмотреть здесь.
Не могу понять само значение фразы «Первое/последнее минимальное/максимальное число». Я так понял, в коде к последнему добавляется знак «=» в условии, но не знаю почему.
Мда запутанно немного… Дело в том что элементы в наборе не уникальны, тоесть могут повторяться. Например: (1,2,1,2,3,3,1)
В этом наборе значение минимального элемента 1. Он встречается первый раз в начале набора и последний в конце.
Тоесть ответ в нашем задании 1 и 7.
Теперь понятно, спасибо.
Рад помочь.
Почти такое же решение с небольшими перестановками:
А можно решение этой задачи, только в VBA?
Надеюсь до понедельника терпит?
мне бы завтра сдать(
дело в том, что до понедельника у меня нет винды, в контексте VBA у меня нет компилятора.
Я вот такое набросал в блокноте…
http://coolcode.ru/reshaem-zadachi-abramyan-na-visual-basic-minmax8/
но будет ли оно компилироваться большой вопрос. 🙂