Определить для каждого элемента позиции элементов матрицы с такой же суммой цифр - Free Pascal
Формулировка задачи:
Помогите найти ошибку
Вот задание
Пусть дана прямоугольная матрица А(n x m), элементами которой являются целые числа.Определите для каждого элемента позиции элементов матрицы с такой же суммой цифр
Иногда выдает не все результаты и помогите сделать так чтобы ответ выдавался примерно так что писалось какое то число,а рядом с ним все индексы чисел с такой же суммой чисел.
uses crt;
type matr=array[1..10,1..10]of integer;
procedure summa(a:integer; var s:integer);
begin
s:=0;
if a<10
then s:=a
else while a>9 do begin
s:=a mod 10+s;
a:=a div 10;
if a<10 then s:=s+a;
end;
end;
procedure poz(ma:matr; n,m:integer);
var i,j,i_prom,j_prom,sum,sum_prom,chislo,nom,kol:integer;
begin
nom:=1;
for i:=1 to m do
for j:=1 to n do
begin
writeln(nom,' элемент (',ma[i,j],'): ');
chislo:=ma[i,j];
summa(chislo,sum);
for i_prom:=1 to m do
for j_prom:=1 to n do
begin
chislo:=ma[i_prom,j_prom];
summa(chislo,sum_prom);
if (sum=sum_prom)and((i<>i_prom)and(j<>j_prom))
then begin
write('(',i_prom,' : ',j_prom,') ');
kol:=kol+1;
end
else write;
end;
if kol=0 then write('нету подходящих элементов');
kol:=0;
writeln;
nom:=nom+1;
end;
end;
var m,n,i,j:integer;
a:matr;
begin
clrscr;
randomize;
write('Размерность (n x m): ');
readln(n,m);
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(21);
write(a[i,j]:3);
end;
writeln;
end;
poz(a,n,m);
readln;
end.Решение задачи: «Определить для каждого элемента позиции элементов матрицы с такой же суммой цифр»
textual
Листинг программы
if (s[i,j]=s[ii,jj]) and ((i<>ii) or (j<>jj)) then Write(' ',ii,',',jj);