(free pascal)exitcode=201,郁闷,哪溢出啦?

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:36:08
program p1;
var a:array[1..100] of longint;
b,k,i:longint;
begin
for b:=1 to 100 do a[b]:=b;
a[1]:=0;
b:=2;
while b<=100 do
begin k:=b;
while k<=100 do
begin k:=k+b;
a[k]:=0;
end;
b:=b+1;
while a[b]=0 do b:=b+1;
end;
for b:=1 to 100 do
if a[b]<>0 then write(a[b],' ');
end.
改好啦,高兴哦
附正解
program p1;
var a:array[1..100] of longint;
b,k:longint;
begin
for b:=1 to 100 do a[b]:=b;
a[1]:=0;
b:=2;
while b<=100 do
begin k:=b;
while k+b<=100 do
begin k:=k+b;
a[k]:=0;
end;
b:=b+1;
end;
for b:=1 to 100 do
if a[b]<>0 then write(a[b],' ');
end.

如果我没猜错的话,这是找100内素数的程序;
1、while k<=100 do
begin k:=k+b;
a[k]:=0;
end; 溢出while是满足条件句。不能用《=100应该是,<=98;

2、while b<=100 do
begin k:=b;
while k<=100 do
begin k:=k+b;
a[k]:=0;
end;
b:=b+1;
while a[b]=0 do b:=b+1;
end; 是死循环。