Если среди диагональных элементов матрицы есть не менее двух, содержащих цифру 5 и не содержащих цифру 3, заменить наибольшие элементы строк на произведения элементов этих строк

Дана целочисленная матрица {Aij}i=1...n;j=1..n , n меньше или равно 100.

code: #pascal
program PascalGuru;
 
uses crt;
type matr=array[1..100,1..100] of integer;
var a,x:matr;
i,j,k,n:integer;
 
Function Chislo(x:integer):integer;
var m,l:integer;
begin
x:=abs(x);
m:=x div 10; l:= x mod 10;
if ((m=5) or (l=5)) and (m<>3) and (l<>3) then chislo:=1 else chislo:=0;
end;
 
Procedure max( var x:matr);
var max1,l:integer;
p:longint;
begin
for i:=1 to n do
begin
max1:=x[i,1];p:=1;l:=1;
for j:=1 to n do
begin
p:=p*x[i,j];
if max1< x[i,j] then begin max1:=x[i,j]; l:=j; end;
end;
x[i,l]:=p;
end;
end;
begin
clrscr;
writeln('введите n');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
read (a[i,j]);
end;
writeln;
writeln('исходная матрица');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4) ;
writeln;
end;
for i:=1 to n do
if chislo(a[i,i])=1 then k:=k+1;
if k>=2 then max(a);
writeln('результат');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:5) ;
writeln;
end;
readln;
end.      
Поделиться:

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