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

首页/题库/435℃/2022-04-10 17:32:03

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]赋值.

我来回答修改/报错/举报内容!

猜你喜欢

一个神奇的在线题库网,分享各类考试题库、题目资料与资料答案、在线搜题与练习等!
本网站部分内容、图文来自于网络,如有侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
Copyright © 2021-2024 315题库 All Rights Reserved