Matrix40. Дана целочисленная матрица размера M × N. Найти номер последней из ее строк, содержащих максимальное количество одинаковых элементов.
>Решение Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | program Matrix40; var a:array [1..10,1..10] of integer; NumMax,Num, RowMax, M, N, i, j:Integer; Row : set of byte; begin Write('N: '); Readln(N); Write('M: '); Readln(M); for i:=1 to M do begin writeln(i,': '); for j:=1 to N do begin Write(j,' : '); Read(a[i,j]); end; end; for i:=1 to M do begin Row:=[]; Num:=0; for j:=1 to N do if (a[i,j] in Row) then inc(Num) else Row:=Row+[a[i,j]]; if (Num>=NumMax) or (i=1) then begin NumMax:=Num; RowMax:=i; end; end; Writeln(RowMax); end. |
program matrix40;
type
matrix=array[1..8,1..8] of integer;
matr=array[1..8] of integer;
var
a,b:matrix;
c:matr;
max,strnum,num1,otr,pol,num,maxmin,min,prnum,sum,n,m,m1,i1,j1,i,j,k,kkk,kkk1,kkk2:integer;
prmax,proizv:real;
begin
randomize;
kkk:=1;m:=8;n:=8;
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=random(-100)+50;
end;
end;
num:=0;num1:=0;max:=0;strnum:=1;
for i:=1 to m do begin
for j:=1 to n do begin
for j1:=j+1 to n do if a[i,j]=a[i,j1] then inc(num,1);
if num>=max then begin max:=num;strnum:=i; end;
end;
num:=0;
end;
writeln(‘numer stroki=’, strnum, ‘ ‘, ‘max=’,max);
writeln();
for i:=1 to m do begin
for j:=1 to n do begin
write(a[i,j],’ ‘);
end;
writeln();
end;
end.