Поменять местами минимальный и максимальный элементы
Авторgospodaretsva.comПросмотров18.6к.Обновлено
В массиве случайных целых чисел поменять местами минимальный и максимальный элементы.
Эта задача состоит из двух частей:
Поиск минимума и максимума (а лучше их индексов).
Обмен минимального и максимального элемента местами.
Поиск минимума:
Присвоить переменной первый индекс массива.
Перебрать все элементы массива в цикле, начиная со второго. Проверить каждый, не меньше ли он элемента под индексом, записанным в переменной п.1. Если это так, то присвоить этой переменной текущий индекс.
Поиск максимума выполняется также, только проверяется, не больше ли текущий элемент того, чей индекс хранится в переменной.
Пример обмена местами минимума и максимума массива:
Присвоить буферной переменной значение минимума.
Записать по индексу минимума максимум массива.
Записать по индексу максимума значение, хранимое в буферной переменной.
Pascal
поменять местами элементы массива паскаль
const N = 15;
var
arr: array[1..N] of integer;
min, max, i: byte;
b: integer;
begin
randomize;
for i:=1 to N do begin
arr[i] := random(100);
write(arr[i],' ');
end;
writeln;
min := 1;
max := 1;
for i:=2 to N do begin
if arr[i] < arr[min] then
min := i;
if arr[i] > arr[max] then
max := i;
end;
writeln('arr[',min,']=',arr[min],' arr[',max,']=',arr[max]);
b := arr[min];
arr[min] := arr[max];
arr[max] := b;
for i:=1 to N do
write(arr[i],' ');
writeln;
end.
# 2-й вариант (классический)
#~ mn = 0
#~ mx = 0
#~ for i in range(N):
#~ if arr[i] < arr[mn]:
#~ mn = i
#~ elif arr[i] > arr[mx]:
#~ mx = i
#~ print('arr[%d]=%d arr[%d]=%d' % (mn+1, arr[mn], mx+1, arr[mx]))
#~ b = arr[mn]
#~ arr[mn] = arr[mx]
#~ arr[mx] = b
for i in range(15):
print(arr[i],end=' ')
print()
В языке программирования Питон есть функции min() и max(), возвращающие соответственно минимальный и максимальный элементы последовательностей. Метод index() возвращает индекс (номер) элемента в последовательности.
КуМир
алг
нач
цел N = 15
целтаб arr[1:N]
цел mn, mx, i, b
нц для i от 1 до N
arr[i] := irnd(100)
вывод arr[i], " "
кц
вывод нс
mn := 1
mx := 1
нц для i от 2 до N
если arr[i] < arr[mn] то
mn := i
все
если arr[i] > arr[mx] то
mx := i
все
кц
вывод "arr[", mn, "]=", arr[mn], нс
вывод "arr[", mx, "]=", arr[mx], нс
b := arr[mn]
arr[mn] := arr[mx]
arr[mx] := b
нц для i от 1 до N
вывод arr[i], " "
кц
кон
for i=0 to N-1
arr[i] = int(rand*100)
print arr[i]+" ";
next i
print
min = 0
max = 0
for i=1 to N-1
if arr[i] < arr[min] then min = i
if arr[i] > arr[max] then max = i
next i
print "arr["+(min+1)+"]="+arr[min]
print "arr["+(max+1)+"]="+arr[max]
b = arr[min]
arr[min] = arr[max]
arr[max] = b
for i=0 to N-1
print arr[i]+" ";
next i
print
const N = 15; var arr: array[1..N] of integer; min, max, i: byte; b: integer; begin randomize; for i:=1 to N do begin arr[i] := random(100); write(arr[i],' '); end; writeln; min := 1; max := 1; for i:=2 to N do begin if arr[i] < arr[min] then min := i; if arr[i] > arr[max] then max := i; end; writeln('arr[',min,']=',arr[min],' arr[',max,']=',arr[max]); b := arr[min]; arr[min] := arr[max]; arr[max] := b; for i:=1 to N do write(arr[i],' '); writeln; end.
# 2-й вариант (классический) #~ mn = 0 #~ mx = 0 #~ for i in range(N): #~ if arr[i] < arr[mn]: #~ mn = i #~ elif arr[i] > arr[mx]: #~ mx = i #~ print('arr[%d]=%d arr[%d]=%d' % (mn+1, arr[mn], mx+1, arr[mx])) #~ b = arr[mn] #~ arr[mn] = arr[mx] #~ arr[mx] = b
for i in range(15): print(arr[i],end=' ') print()
В языке программирования Питон есть функции min() и max(), возвращающие соответственно минимальный и максимальный элементы последовательностей. Метод index() возвращает индекс (номер) элемента в последовательности.
КуМир
алг нач цел N = 15 целтаб arr[1:N] цел mn, mx, i, b нц для i от 1 до N arr[i] := irnd(100) вывод arr[i], " " кц вывод нс mn := 1 mx := 1 нц для i от 2 до N если arr[i] < arr[mn] то mn := i все если arr[i] > arr[mx] то mx := i все кц вывод "arr[", mn, "]=", arr[mn], нс вывод "arr[", mx, "]=", arr[mx], нс b := arr[mn] arr[mn] := arr[mx] arr[mx] := b нц для i от 1 до N вывод arr[i], " " кц кон
for i=0 to N-1 arr[i] = int(rand*100) print arr[i]+" "; next i print
min = 0 max = 0 for i=1 to N-1 if arr[i] < arr[min] then min = i if arr[i] > arr[max] then max = i next i print "arr["+(min+1)+"]="+arr[min] print "arr["+(max+1)+"]="+arr[max]
b = arr[min] arr[min] = arr[max] arr[max] = b for i=0 to N-1 print arr[i]+" "; next i print
182