Дан двумерный массив a размером n*n. Написать программу определения номера столбца с...

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

Дан двумерный массив a размером n*n. Написать программу определения номера столбца с максимальной суммой элементов.

Дан двумерный массив а размером n*n. В каждой строке изменить значения элементов, стоящих за минимальным элементом этой строки, на 1


Информатика (26 баллов) | 27 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Обе програмки проверены на АВС Паскале. Работают :)

 

Program User6165_1;
const n=10;
var
  a:array[1..n,1..n] of integer;
  stosum:array[1..n] of integer;//массив для хранения сумм столбцов
  i,j,nomer,sum : integer;
begin
  Randomize;
  for i:=1 to n do
    for j:=1 to n do
      a[i,j]:= Random(100); //заполняем массив
  writeln('*** alphaues is thinking... ***');
  for j:=1 to n do
    begin
      sum:=0;  
      for i:=1 to n do
        sum:=sum+a[i,j]; // находим сумму столбца
      stosum[j]:=sum;
    end;
  nomer:=1;
  sum:=stosum[1];
  for j:=1 to n do
    begin
      if sum      nomer:=j;
    end;
  writeln;
  for i:=1 to n do
    begin
      for j:=1 to n do
        write(a[i,j]:5);//выводим массив
      writeln;
    end;
    writeln('*** столбец с максимальной суммой - ',nomer,'-й');
end.


Program User6165_2;
const n=10;
var
  a:array[1..n,1..n] of integer;
  stosum:array[1..n] of integer;//массив для хранения сумм столбцов
  i,j,nomer,min : integer;
begin
  Randomize;
  for i:=1 to n do
    for j:=1 to n do
      a[i,j]:= Random(100); //заполняем массив
  writeln('*** alphaues is thinking... ***');
  writeln;
  for i:=1 to n do
    begin
      for j:=1 to n do
        write(a[i,j]:5);//выводим массив
      writeln;
    end;
  for i:=1 to n do
    begin
      min:=a[i,1];  
      nomer:=1;
      for j:=1 to n do
        if min>a[i,j] then
        begin
          min:=a[i,j];
          nomer:=j;
        end;
      if nomer      begin
        a[i,nomer+1]:=1;
        writeln(i,'-я строка: мин. элемент - ',nomer,'-й. Следующий заменён на 1.');
      end
      else
        writeln(i,'-я строка: мин. элемент - ',nomer,'-й. Это последний элемент в строке.');
    end;
end.

(52.6k баллов)