Заполните массив случайными числами и найти два максимальных элемента массива и их номера - Pascal ABC
Формулировка задачи:
Задача: Заполните массив случайными числами и найти два максимальных элемента массива и их номера.
Пример:
Не работает, когда первый элемент массива имеет максимальное значение - считает это значение за максимальное в обоих случаях. Помогите исправить.
Массив:
5 5 3 4 1
Максимальный элемент: A[1]=5
Второй максимум: A[2]=5
Листинг программы
- program qq;
- const N=5;
- var i, nMax, nMax2:integer;
- var A:array [1..N] of integer;
- begin
- writeln ('Массив:');
- for i:=1 to N do begin
- A[i]:=random(9)+1;
- write (A[i], ' ');
- end;
- writeln (' ');
- nMax:=1;
- for i:=1 to N do
- if A[i]>A[nMax] then
- nMax:=i;
- writeln ('Максимальный элемент: A[', nMax, ']=', A[nMax]);
- nMax2:=1;
- for i:=1 to N do
- if (i<>nMax) and (A[i]>A[nMax2]) then
- nMax2:=i;
- writeln ('Второй максимум: A[', nMax2, ']=', A[nMax2]);
- end.
Решение задачи: «Заполните массив случайными числами и найти два максимальных элемента массива и их номера»
textual
Листинг программы
- program Project2;
- var
- n,max,min,nmax,nmin,i:integer;
- a:array of integer;
- begin
- randomize;
- writeln('Введите размерность массива!');
- readln(n);
- setlength(a,n);
- for i := 1 to n do
- a[i]:=random(100)+1;
- write('Массив: ');
- for i := 1 to n do
- write(a[i],' ');
- writeln;
- max:=a[1];
- min:=a[1];
- for i := 1 to n do
- if max<a[i] then
- begin
- max:=a[i];
- nmax:=i;
- end;
- writeln('Максимальный элемент: ', max,' Номер: ', nmax);
- for i := 1 to n do
- if min>a[i] then
- begin
- min:=a[i];
- nmin:=i;
- end;
- writeln('Минимальный элемент: ', min,' Номер: ', nmin);
- readln;
- end.
Объяснение кода листинга программы
Программа Project2 выполняет следующие действия:
- Вводит размерность массива с помощью функции readln.
- Создает массив a типа array of integer и устанавливает его длину с помощью функции setlength.
- Заполняет массив случайными числами в диапазоне от 1 до 100 с помощью цикла for и функции randomize.
- Выводит содержимое массива с помощью цикла for и функции write.
- Находит максимальный элемент массива, сохраняя его значение и номер в переменных max и nmax соответственно с помощью цикла for.
- Находит минимальный элемент массива, сохраняя его значение и номер в переменных min и nmin соответственно с помощью цикла for.
- Выводит найденные значения с помощью функций write и writeln.
- Завершает работу программы с помощью функции readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д