Kết quả của chương trình sau là gì:
#include
void main() {
int a = 40, b = 4;
while (a != b)
if (a > b)
a = a - b;
else
b = b - a;
printf("%d", a);
}
Trả lời:
Đáp án đúng: C
Chương trình thực hiện vòng lặp `while` cho đến khi `a` bằng `b`. Trong mỗi vòng lặp, nếu `a` lớn hơn `b`, thì `a` sẽ được gán bằng `a - b`. Ngược lại, `b` sẽ được gán bằng `b - a`. Quá trình này tiếp tục cho đến khi `a` và `b` bằng nhau.
Ban đầu, `a = 40` và `b = 4`.
- Lần lặp 1: `a > b` (40 > 4) nên `a = 40 - 4 = 36`.
- Lần lặp 2: `a > b` (36 > 4) nên `a = 36 - 4 = 32`.
- Lần lặp 3: `a > b` (32 > 4) nên `a = 32 - 4 = 28`.
- Lần lặp 4: `a > b` (28 > 4) nên `a = 28 - 4 = 24`.
- Lần lặp 5: `a > b` (24 > 4) nên `a = 24 - 4 = 20`.
- Lần lặp 6: `a > b` (20 > 4) nên `a = 20 - 4 = 16`.
- Lần lặp 7: `a > b` (16 > 4) nên `a = 16 - 4 = 12`.
- Lần lặp 8: `a > b` (12 > 4) nên `a = 12 - 4 = 8`.
- Lần lặp 9: `a > b` (8 > 4) nên `a = 8 - 4 = 4`.
- Lúc này `a == b` (4 == 4), vòng lặp kết thúc.
Giá trị của `a` (và `b`) là 4. Chương trình sẽ in ra giá trị của `a` là 4.