Помогите решить . Заполнить двумерный массив N x N случайными числами из интервала [-10;...

0 голосов
73 просмотров

Помогите решить . Заполнить двумерный массив N x N случайными числами из интервала [-10; 10] и найти сколько раз в массиве встречается максимальное по величине число.


Информатика (234 баллов) | 73 просмотров
0

Язык программирования? На Паскале не реализуемо.

0

На паскале вполне возможно сделать двумерный массив

Дано ответов: 2
0 голосов
Правильный ответ
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 раз(а)
(150k баллов)
0

Спасибо) Как можно заменить слово" INC"?

0 голосов

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];<br> 
  {Подсчет максимальных элементов}
  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.

(368 баллов)