Cần giúp đỡ code test lúc được lúc không
-
Lúc nào “được”, lúc nào “không” vậy bạn?
-
Bạn vui lòng đăng code lên đây dưới dạng chữ, không chụp hình thế kia đâu nhé.
var n,i,j,t: longint; s:array[1…100]of longint;
begin
clrscr;
readln(n);
for i:=1 to n do
readln(s[i]);
for i:=1 to n-1 do
begin
j:=i;
while (s[j]>s [j+1]) and (j>0) do
begin
t:=s[j];
s[j]:=s[j+1];
s[j+1]:=t;
j:=j-1;
end;
end;
for i:=1 to n do
write(s[i],’ ');
readln;
end.
If i import:
5
3
2
4
5
1
Then it run normal
If i import
5
6
3
2
1
9
It will get an error
Lỗi bạn gặp phải là gì?
Its the error 201 fff
Lỗi 201 là do truy cập ngoài mảng. Nếu j = 0
, điều kiện s[j] > s[j+1]
được xét trước và gây ra lỗi, do vậy bạn phải đảo điều kiện j > 0
trước s[j] > s[j+1]
.
Thế tôi cứ tưởng Nó so sánh cả 2 rồi mới chạy, thank bạn, để tôi thử