请帮忙解释下如下Pascal程序运行结果,以及步骤

来源:百度知道 编辑:UC知道 时间:2024/06/02 07:19:16
program ex7_3;
var
a:array[1..10] of integer;
i,j:integer;
begin
for i:=1 to 10 do
begin
a[i]:=a[i]+i;
for j:=1 to i do
a[j]:=a[j]+j;
end;
for i:=1 to 10 do
write(a[i],' ');
end.

注:运行结果为 11 20 27 32 35 36 35 32 27 20
不懂这个结果怎么来的
请帮忙解释下。

program ex7_3;
var
a:array[1..10] of integer;
i,j:integer;
begin
for i:=1 to 10 do
begin
a[i]:=a[i]+i; {a[1]到a[10]分别加了1-10}
for j:=1 to i do
a[j]:=a[j]+j;{依次执行10次,共在a[1]上加了10个1,在a[2]上加了9个2,……}
end;
for i:=1 to 10 do
write(a[i],' ');{在a[1]到a[10]分别加了加了11个1,10个2,9个3,……}
end.

请发挥你丰富的空间思维想象力和聪明的头脑
没有为什么

程序错了阿

a[1]=0+1=1
=====
a[1]=1+1=2
a[2]=2+1=3
循环到
a[10]=10+1=11
===============
a[2]=
哎呀,好累!