Помогите решить . Заполнить двумерный массив N x N случайными числами из интервала [-10; 10] и найти сколько раз в массиве встречается максимальное по величине число.
Помогите решить . Заполнить двумерный массив N x N случайными числами из интервала [-10; 10] и найти сколько раз в массиве встречается максимальное по величине число.
Ответ(ы) на вопрос:
Гость
program pr;
var
arr: array[1..5] of array[1..5] of integer;
max, nmax: integer;
begin
randomize;
{Формирование массива}
for var i := 1 to 5 do
for var j := 1 to 5 do
arr[i][j] := random(20) - 10;
{Показ массива}
for var i := 1 to 5 do
for var j := 1 to 5 do
write(arr[i][j], ' ');
writeln();
{Поиск максимального элемента}
max := arr[1][1];
for var i := 1 to 5 do
for var j := 1 to 5 do
if (max <= arr[i][j]) then max := arr[i][j];
{Подсчет максимальных элементов}
nmax := 0;
for var i := 1 to 5 do
for var j := 1 to 5 do
if (arr[i][j] = max) then nmax := nmax + 1;
writeln('Максимальный элемент: ', max);
writeln('Количество таких элементов: ', nmax);
end.
Гость
1. Типовое "школьное" решение
const
nn=20; { указать максимально возможный размер }
var
a:array[1..nn,1..nn] of integer;
n,i,j,mx,k:integer;
begin
Randomize;
Write('n='); Read(n);
mx:=-20; { меньше минимально возможного }
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=Random(21)-10;
Write(a[i,j]:4);
if a[i,j]>mx then begin mx:=a[i,j]; k:=1 end
else
if a[i,j]=mx then Inc(k)
end;
Writeln;
end;
Writeln('Максимальное значение ',mx,' встречается ',k,' раз(а)')
end.
Пример работы программы
n=10
3 -1 -6 10 -9 -8 -7 1 2 -9
0 6 -1 -2 2 7 3 -5 -2 6
6 0 -3 0 -6 1 9 9 -6 -10
-3 7 -3 -4 -10 6 -8 -9 -10 -3
-1 -1 1 0 1 8 -8 6 7 -5
-1 1 0 -4 -9 -8 -9 4 5 0
-6 -5 -4 2 5 3 -2 -8 -3 6
5 1 -6 -10 -4 -3 10 7 10 -4
-1 -7 -9 10 2 7 -3 -9 -6 8
4 -2 -4 1 -7 -7 -8 10 6 8
Максимальное значение 10 встречается 5 раз(а)
2. Решение на основе базовых возможностей PascalABC.Net 3.2
var
a:array[,] of integer;
begin
Randomize;
var n:=ReadInteger('n=');
SetLength(a,n,n);
var mx:=-20; // меньше минимально возможного
var k:integer;
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do begin
a[i,j]:=Random(-10,10);
Write(a[i,j]:4);
if a[i,j]>mx then begin mx:=a[i,j]; k:=1 end
else
if a[i,j]=mx then Inc(k)
end;
Writeln;
end;
Writeln('Максимальное значение ',mx,' встречается ',k,' раз(а)')
end.
Пример работы программы
n= 10
0 2 2 -10 -5 -4 8 6 -8 -1
-4 5 9 3 -4 -8 6 -10 8 -3
5 5 -2 -8 6 -7 -9 5 -10 2
1 -7 -7 -3 0 -10 4 1 6 -1
-2 2 -8 3 0 3 9 5 -1 -8
10 8 3 1 10 5 -7 0 -6 -9
-6 -7 5 0 8 -8 2 2 -8 -4
-2 -5 -6 -1 10 -7 2 5 2 -7
-6 -3 -5 9 3 3 0 2 -2 5
7 -7 -4 5 -6 -6 7 2 6 -3
Максимальное значение 10 встречается 3 раз(а)
Не нашли ответ?
Похожие вопросы