Найти в матрице две строки с равными количествами ненулевых элементов

Вычесть элементы строки с меньшим номером из соответствующих элементов всех строк.

code: #pascal
Program stroki;
uses crt;
var n:byte;-размерность матрицы
    i,j:byte;-счетчики в циклах
    k:byte;-количество ненулевых элементов
    i1:byte;-номер первой строки с одинаковым количеством ненулевых элементов
    a:array[1..20,1..20] of integer;- матрица
    b:array[1..20]of integer; - массив количеств ненулевых элементов в строках
begin
clrscr;
write('n=');readln(n);
randomize;
writeln('Ishodnaia matrica');
for i:=1 to n do
  begin
    for j:=1 to n do
      begin
        a[i,j]:=random(5);
        write(a[i,j]:3);
      end;
  writeln;
  end;
readln;
for i:=1 to n do
  begin
   k:=0;
   for j:=1 to n do
     begin
       if a[i,j]<>0 then k:=k+1;//считаем количество ненулевых элементов в строке
     end;
   b[i]:=k;  //заносим его в массив
   end;
for i:=1 to n-1 do   //определяем, есть ли одинаковые и номер первой одинаковой строки
   begin
     for j:=i+1 to n do
       begin
         if b[i]=b[j] then break;
       end;
     if j<n then break;
   end;
   if i<n then i1:=i
   else
       begin
         writeln('odin net');
         readln;
         exit;
       end;
for j:=1 to n do   //запоминаем элементы нужной строки
b[j]:=a[i1,j];
writeln('Obrabotannaia matrica');
for i:=1 to n do
  begin
   for j:=1 to n do
      begin
        a[i,j]:=a[i,j]-b[j]; //вычитаем их из всех строк
        write(a[i,j]:3);
      end;
  writeln;
  end;
readln;
end.

автор: puporev

Поделиться:

Похожие статьи: