Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
int s = 0, n = 10; int number[3][3]
for (int i = 0,j = 0; i < 3,j < 3; i++, j++) {
number[i][j] = n --; s += number[i][j]
}
cout << s << endl;
Trả lời:
Đáp án đúng: D
Đoạn code khởi tạo một mảng 2 chiều `number` kích thước 3x3 và một biến `s` để tính tổng. Vòng lặp `for` duyệt qua các phần tử trên đường chéo chính của mảng, gán giá trị từ `n` giảm dần và cộng vào `s`.
Giá trị của `n` khởi đầu là 10. Trong mỗi lần lặp, `number[i][j]` được gán giá trị của `n`, sau đó `n` giảm đi 1. Các giá trị của `number[i][j]` và `s` trong mỗi lần lặp như sau:
- Lần lặp 1: `i = 0`, `j = 0`, `number[0][0] = 10`, `n = 9`, `s = 10`
- Lần lặp 2: `i = 1`, `j = 1`, `number[1][1] = 9`, `n = 8`, `s = 10 + 9 = 19`
- Lần lặp 3: `i = 2`, `j = 2`, `number[2][2] = 8`, `n = 7`, `s = 19 + 8 = 27`
Vậy kết quả cuối cùng của `s` là 27.
Lưu ý: Biểu thức điều kiện `i < 3, j < 3` trong vòng lặp `for` chỉ xét `j < 3`, vì toán tử `,` sẽ trả về toán hạng cuối cùng. Do đó, vòng lặp sẽ tiếp tục cho đến khi `j` đạt giá trị 3.