Заполнение двумерного массива одним циклом
Пусть нам надо заполнить матрицу как таблицу умножения, т.е. каждый элемент равен произведению его индексов (a[i,j]=i*j)
Например:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
В принципе, неважно, как заполнять массив, главное, чтобы заполнить его одним циклом:
var
n,m,i,j:integer;
a:array[1..100,1..100] of integer;
begin
read(n,m);
i:=1; {счетчик строк}
j:=1; {счетчик столбцов}
while (i<=n) and (j<=m) do
begin
a[i,j]:=i*j;
inc(j); {увеличиваем счетчик столбцов}
if (j=m+1) then {если текущий столбец вышел за пределы массива, то}
begin
j:=1; {делаем текущим первый столбец}
inc(i); {увеличиваем счетчик строки}
end;
end;
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:4); {выводим массив уже по-обычному}
writeln;
end;
readln
end.
Комментарии:
Нету комментариев для вывода...