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é.

2 Likes

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

2 Likes

Thế tôi cứ tưởng Nó so sánh cả 2 rồi mới chạy, thank bạn, để tôi thử

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?