作业帮 > 综合 > 作业

pascal语言矩阵:1 3 6 10 15 2 5 9 14 19 4 8 13 18 22 7 12 17 21 2

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/19 02:58:49
pascal语言矩阵:1 3 6 10 15 2 5 9 14 19 4 8 13 18 22 7 12 17 21 24 11 16 20 23 25
初学者,求用for循环做的,
1 3 6 10 15
2 5 9 14 19
4 8 13 18 22
7 12 17 21 24
11 16 20 23 25
program test;
const
n=5;
var
i,j,k:integer;
a:array [1..n] of array [1..n] of integer;
begin
k:=1;
i:=1;
j:=1;
a[i,j]:=k;
for k:=2 to (n*n) do
begin
if j=n
then begin
j:=i+1;
i:=n;
end
else if i=1
then begin
i:=j+1;
j:=1;
end
else begin
i:=i-1;
j:=j+1;
end
a[i.j]:=k;
end
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;
end.
抱歉,我很久没编程了,pascal还是初中学的,不知道能不能运行通过.大体应该是不错的,细节可能存在问题.
稍微解释一下,思路就是调整数组的下标,给数组中元素一次赋值1,2,3,.直到n*n停止.改变下标的原则是:
1.先判断有没有到列末尾(j=n),
1.1 到了就j:=i+1;i:=n;
1.2 不到就判断有没有到第一行(i=1),
1.2.1 到了就i:=j+1; j:=1;
1.2.2 不到就i:=i-1;j:=j+1;
然后给a[i,j]赋值.