初學者編寫的 C 程序意圖輸入 10 個浮點數到數組,調用 inc 函數每個元素加 10 後輸出,但存在兩個關鍵錯誤:scanf 格式字符串包含多餘提示文本導致讀取失敗;inc 函數第二參數 n 未被使用,循環硬編碼 10。
// 錯誤 1:scanf 格式串包含中文提示,用戶必須原樣輸入才能匹配
scanf("___輸入各個元素值%f ____", p);
// 錯誤 2:inc 形參 n 未使用,循環寫死 10
void inc(float *pt, int n) {
for (; m < 10; m++, p1++) *p1 += 10;
}
#include <stdio.h>
void inc(float *pt, int n); // 聲明
int main() {
float ar[10], *p;
printf("輸入各個元素值: ");
for (p = ar; p < ar + 10; p++)
scanf("%f", p); // 純格式符,無多餘字符
inc(ar, 10); // 傳入數組首地址與長度
for (p = ar; p < ar + 10; p++)
printf("%-8.2f ", *p);
return 0;
}
void inc(float *pt, int n) {
for (int m = 0; m < n; m++) // 使用參數 n
pt[m] += 10;
}
scanf 只放格式符(%f、%d 等),提示信息用 printf 单独輸出p < ar+10 遍歷數組是 C 語言地道寫法