Консультация № 138495
29.05.2008, 15:24
0.00 руб.
0 1 1
дана целочисленная прямоугольная матрица.Определить максимальное из чисел,встречающихся в заданной матрице более одного раза (оформить в виде процедуры).

Обсуждение

давно
Профессор
401888
1232
30.05.2008, 09:28
общий
это ответ
Здравствуйте, Пухов Никита Евгеньевич!
Решение задачи в приложении.


Приложение:
program max_chis_bol_1_raz;uses crt;type Tmass=array[1..50]of integer; Tmatr=array [1..50] of Tmass;var mt:Tmatr; n,m,i,j,max:integer;procedure Max2(a:Tmatr;var c:integer);var b:Tmass;k,x,p:integer;begink:=0;for i:=1 to n do begin for j:=1 to m do begin k:=k+1; b[k]:=a[i,j]; {создаем из матрицы линейный массив} end; end;for i:=1 to k-1 dofor j:=1 to k-1 doif b[j]<b[j+1] then begin x:=b[j];b[j]:=b[j+1];b[j+1]:=x; {сортируем его по убыванию} end;i:=2;p:=0;while i<=k doif b[i]=b[i-1] then begin c:=b[i]; {смотрим сначала, как только одинаковые - прекращаем} p:=1; {отмечаем, что такой есть} break; end else inc(i);if p=1 then writeln(‘Maximalnoe chislo, >1 raza=‘,c)else writeln(‘Takogo chisla net!‘);end;beginclrscr;write(‘Kolichestvo strok n=‘);readln(n);write(‘Kolichestvo stolbcov m=‘);readln(m);randomize;writeln(‘Matrica:‘);for i:=1 to n do begin for j:=1 to m do begin mt[i,j]:=random(50); write(mt[i,j]:4); end; writeln; end;readln;Max2(mt,max); {вызов процедуры}readlnend.
Форма ответа