问题:
1。一定是数组超界,当i=1时,就会访问a[0]
2。还有若输入一个原有数列中的数,答案就不对了
正解:
program ex;
var i,k:longint;
a:array [0..10] of longint;
begin
for i:=1 to 5 do
begin
readln(a[i]);
end;
writeln('input k:');
readln(k);
for i:=1 to 5 do
begin
if (k >= a[i-1]) and (k <= a[i]) then {当i=1,这时数组超界}
begin
a[i+1]:=a[i];
a[i]:=k;
end;
end;
for i:=1 to 6 do write(a[i],' ');
writeln;
readln;
end.
数组超界
if (k > a[i-1]) and (k < a[i]) then
这句当i=1时候a[i-1]是a[0],而你定义是a:array [1..10] of longint;
没有a[0]
说以超出你定义范围。
范围检查出错