int a[SIZE], temp1, temp2, i, a; // 錯誤:數組 a 與整型變量 a 重名
// ...
for(i=0;i<=4;i++) { scanf("%d",&a[i]); } // 編譯器無法判斷 a 是數組還是整數
在同一作用域內,標識符不能重複聲明。int a[SIZE] 聲明數組 a,隨後 int ..., a 再次聲明整型變量 a,導致編譯器報錯 C2040: 'a' : 'int' differs in levels of indirection from 'int [5]'(一級指針/整型 vs 數組類型,間接引用層級不同)。
重命名其中一個變量,語義清晰:
int arr[SIZE], temp1, temp2, i, input_val; // 數組改名 arr,單值改名 input_val
for(i=0; i<SIZE; i++) { scanf("%d", &arr[i]); }
-Wall -Wextra (GCC/Clang) 或 /W4 (MSVC),提前發現遮蔽/重名問題。_arr/_list,單值用單數名詞。