Найти в матрице две строки с равными количествами ненулевых элементов
Категория: Delphi/Pascal
2012-01-02 23:28:02
Вычесть элементы строки с меньшим номером из соответствующих элементов всех строк.
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
Поделиться: