Поменять местами минимальный и максимальный элементы

В массиве случайных целых чисел поменять местами минимальный и максимальный элементы.

Эта задача состоит из двух частей:

  1. Поиск минимума и максимума (а лучше их индексов).
  2. Обмен минимального и максимального элемента местами.

Поиск минимума:

  1. Присвоить переменной первый индекс массива.
  2. Перебрать все элементы массива в цикле, начиная со второго. Проверить каждый, не меньше ли он элемента под индексом, записанным в переменной п.1. Если это так, то присвоить этой переменной текущий индекс.

Поиск максимума выполняется также, только проверяется, не больше ли текущий элемент того, чей индекс хранится в переменной.

Пример обмена местами минимума и максимума массива:

  1. Присвоить буферной переменной значение минимума.
  2. Записать по индексу минимума максимум массива.
  3. Записать по индексу максимума значение, хранимое в буферной переменной.
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.



94 64 42 1 72 3 88 52 3 67 32 15 31 32 65
arr[4]=1 arr[1]=94
1 64 42 94 72 3 88 52 3 67 32 15 31 32 65
Язык Си


#include < stdio.h>
#define N 15
main() {
int arr[N], i, min, max, b;
srand(time(NULL));
min = 0;
max = 0;
for (i=0; i< N; i++) {
arr[i] = rand() % 100;
printf("%d ", arr[i]);
if (arr[i] < arr[min]) min = i;
if (arr[i] > arr[max]) max = i;
}
printf("\n");
printf("arr[%d]=%d arr[%d]=%d\n",min+1,arr[min],max+1,arr[max]);
b = arr[min];
arr[min] = arr[max];
arr[max] = b;
for (i=0; i< N; i++)
printf("%d ", arr[i]);
printf("\n");
}
Python

поменять местами элементы массива python (питон)

from random import random
N = 15
arr = [0]*N
for i in range(N):
arr[i] = int(random()*100)
print(arr[i],end=' ')
print()

# 1-й вариант
mn = min(arr)
mx = max(arr)
imn = arr.index(mn)
imx = arr.index(mx)
print('arr[%d]=%d arr[%d]=%d' % (imn+1, mn, imx+1, mx))
arr[imn],arr[imx] = arr[imx],arr[imn]

# 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], " "
кц
кон



37 67 3 48 54 89 27 22 46 20 14 35 28 70 51
arr[3]=3
arr[6]=89
37 67 89 48 54 3 27 22 46 20 14 35 28 70 51
Basic-256


N = 10
dim arr(N)

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



37 78 17 99 97 49 78 9 54 24
arr[8]=9
arr[4]=99
37 78 17 9 97 49 78 99 54 24

Оцените статью
Добавить комментарий