移動 n 個盤子從 A 經 B 到 C:
void hanoi(int n, char from, char aux, char to) {
if (n == 1) { printf("%c -> %c\n", from, to); return; }
hanoi(n-1, from, to, aux);
printf("%c -> %c\n", from, to);
hanoi(n-1, aux, from, to);
}
| 錯誤代碼 | 問題 | 正確寫法 |
|---|---|---|
int a[5] = {1,2,3,4,5,6}; | 初始化器超過數組長度 | 長度匹配或省略長度 int a[] = {...} |
int a[5]; a = {1,2,3}; | 數組名不可作左值整體賦值 | 逐元素賦值或 `memcpy`/`{}` 初始化 |
char str[10] = "hello\0world"; | 字符串字面量隱含 `\0`,截斷 | 用字符數組 `{'h','e','l','l','o','\0','w',...}` |