Cho bài toán

#include<stdio.h>
// Hoi ket qua cua chuong trinh sau:
// A: 9 6 3
// B: 9 3
// C: Chuong trinh bao loi
// D: 9 6 3 0
int main() {
  int n = 10;
  
  while(n > 0) {
    if(n % 3 == 0) {
      printf("%d ", n);
      n -= 3;
    }
    n--;
  }
}

Cách hoạt động

Câu này như vầy: Mới vào: n = 10; Sau đó chạy vòng lặp sau:
  • Lần lặp 1:
    • xét điều kiện: n = 10 > 0 => true -> thực hiện code trong vòng lặp
    • n % 3 => 10 % 3 = 1 != 0 => không thực hiện gì trong IF
    •  n-- = 10-- = 9
  • Lần lặp 2:
    • xét điều kiện: n = 9 > 0 => true -> thực hiện code trong vòng lặp
    • n % 3 => 9 % 3 = 0 == 0 => TRUE => thực hiện CODE trong IF:
      • in ra màn hình giá trị n = 9
      • n -= 3 => giảm đi 3 đơn vị = 9 - 3 = 6
    • n-- = 6-- = 5
  • Lần lặp 3:
    • xét điều kiện: n = 5 > 0 => true -> thực hiện code trong vòng lặp
    • n % 3 => 5 % 3 = 2 != 0 => không thực hiện gì trong IF
    • n-- = 5-- = 4
  • Lần lặp 4:
    • xét điều kiện: n = 4 > 0 => true -> thực hiện code trong vòng lặp
    • n % 3 => 4 % 3 = 1 != 0 => không thực hiện gì trong IF
    • n-- = 4-- = 3
  • Lần lặp 5:
    • xét điều kiện: n = 3 > 0 => true -> thực hiện code trong vòng lặp
    • n % 3 => 3 % 3 = 0 == 0 => TRUE => thực hiện CODE trong IF:
    • in ra màn hình giá trị n = 3
    • n -= 3 => giảm đi 3 đơn vị = 3 - 3 = 0
    • n-- = 0-- = -1
  • Lần lặp 6:
    • xét điều kiện: n = -1 > 0 => false -> kết thúc vòng lặp