LH Quảng cáo: lazijsc@gmail.com

Bài tập  /  Bài đang cần trả lời

Giải bài có thưởng!

Hãy cho biết thứ tự của mảng sau khi chạy xong đoạn chương trình này:

Hãy cho biết thứ tự của mảng sau khi chạy xong đoạn chương trình này: int a[6]={8,6,2,9,1,5}; int i, j,
temp; for(i=0;i<5;i++){ for(j=i+1;j<6;j++){ if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } }
A. Báo lỗi
B. 8,2,6,2,9,1,5
C. 9,8,6,5,2,1
D. 1,2,5,6,8,9
0 trả lời
Hỏi chi tiết
57
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Đoạn chương trình đã cho thực hiện một thuật toán sắp xếp (bubble sort) nhưng với điều kiện là chỉ hoán đổi các phần tử nếu phần tử hiện tại lớn hơn phần tử phía sau. Điều này gây ra tình trạng các phần tử lớn hơn ở phía trước và sắp xếp theo thứ tự từ lớn đến nhỏ.

Dưới đây là quá trình thực hiện sắp xếp cho mảng `int a[6]={8,6,2,9,1,5};`:

1. Đầu tiên, `i = 0`:
- `j = 1`: `8 > 6` → hoán đổi → mảng: `{6, 8, 2, 9, 1, 5}`
- `j = 2`: `6 > 2` → hoán đổi → mảng: `{2, 8, 6, 9, 1, 5}`
- `j = 3`: `2 < 9` → không hoán đổi.
- `j = 4`: `2 < 1` → không hoán đổi.
- `j = 5`: `2 < 5` → không hoán đổi.

2. Tiếp theo, `i = 1`:
- `j = 2`: `8 > 6` → hoán đổi → mảng: `{2, 6, 8, 9, 1, 5}`
- `j = 3`: `6 < 9` → không hoán đổi.
- `j = 4`: `6 > 1` → hoán đổi → mảng: `{2, 1, 8, 9, 6, 5}`
- `j = 5`: `1 < 5` → không hoán đổi.

3. Tương tự, với các giá trị `i = 2`, `i = 3`, ... sẽ không còn hoán đổi nào xảy ra.

Kết quả cuối cùng của mảng sau khi chạy đoạn chương trình là: `{1, 2, 5, 6, 8, 9}`.

Do đó, đáp án đúng là:
**D. 1, 2, 5, 6, 8, 9**.

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Trắc nghiệm Tin học Đại học mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Gia sư Lazi Gia sư