Примеры задач

Одномерные массивы


Пусть даны целые числа а1,…,а99. Получите новую последовательность, выбросив из исходной максимальный и минимальный член.

Методика решения

Например:
возьмем последовательность:
6 25 7 1 63 49 52 71 30 6 32 45
здесь максимальный элемент равен 71, минимальный элемент равен 1, тогда получаем следующую последовательность:
6 25 7 63 49 52 30 6 32 45

Используемые переменные:
а, с - массивы;
i,j - номера элементов массивов а и с соответственно;
max - максимальный элемент;
min - минимальный элемент.

В цикле формируем случайным образом элементы последовательности и выводим их на экран.
Нахождение минимального элемента: присвоим min значение первого элемента, затем сравниваем его с остальными элементами массива, если найдется элемент, меньший min , то min присваиваем значение этого элемента, вывод min на экран
Аналогично находим максимальный элемент и выводим его на экран;
Удаление максимального и минимального элементов из массива: если значение i -го элемента массива не равено максимальному и минимальному элементам, то пересылаем его в последовательность с .
Полученную последовательность с выводим на экран.

Листинг программы

Program ex2_7;
Uses crt;
Var a,c:Array [1..99] Of Integer;
q,j,i,max,min:Integer;
Begin
Clrscr;
Randomize; {задание последовательности случайным образом}
q:=99;
For i:=1 To q Do
a[i]:=1+Random(100);
For i:=1 To q Do
Write(a[i],' ');
min:=a[1]; {нахождение минимального элемента}
For i:=2 To q Do
If a[i] Writeln;
Writeln('min=',min);
max:=a[1]; {нахождение максимального элемента}
For i:=2 To q Do
If a[i]>max Then max:=a[i];
Writeln;
Writeln('max=',max);
For i:=1 To q Do
Begin { удаление максимального и минимального элементов из массива}
If (a[i]<>max) And (a[i]<>min) Then
Begin
j:=j+1;
c[j]:=a[i];
End;
End;
For i:=1 To j
Do Write(c[i],' '); {вывод результата на экран}
Readkey;
End.

Запустить программу






Назад