for (i = 1; i <= 4; i++)
for (j = 1; j <= 4; j++)
for (k = 1; k <= 4; j++) // 錯誤:應為 k++
if (i != j && i != k && j != k)
printf("%d%d%d", i, j, k);
最內層循環 **遞增變量寫錯**:`j++` 而非 `k++`。
for (i = 1; i <= 4; i++)
for (j = 1; j <= 4; j++)
for (k = 1; k <= 4; k++) // 修正:k++
if (i != j && i != k && j != k)
printf("%d%d%d ", i, j, k); // 加空格分隔
123 124 132 134 142 143
213 214 231 234 241 243
312 314 321 324 341 342
412 413 421 423 431 432
// 共 24 種排列 (P(4,3) = 4*3*2 = 24)
| 錯誤類型 | 示例 | 後果 |
|---|---|---|
| 遞增變量錯誤 | `for(k=0;k| 死循環/邏輯錯誤 | |
| 條件判錯變量 | `for(i=0;i| 死循環/越界 | |
| 嵌套循環重用變量 | 內外層同用 `i` | 外層循環被內層修改 |
| 無符號整數反向循環 | `for(size_t i=n;i>=0;i--)` | 死循環 (i 永遠 >=0) |