從鍵盤讀取一系列整數,當輸入的數值 小於或等於 0 時結束輸入,並計算所有正整數的總和。
#include <stdio.h>
int main(void) {
int sum = 0;
int val;
printf("Enter an integer > ");
while (scanf("%d", &val) == 1 && val > 0) {
sum += val;
printf("Enter an integer > ");
}
printf("The sum is %d\n", sum);
return 0;
}
Enter an integer > 1 Enter an integer > 2 Enter an integer > 3 Enter an integer > 4 Enter an integer > 5 Enter an integer > 6 Enter an integer > 0 The sum is 21
scanf("%d", &val) == 1 確保成功讀取整數;val > 0 作為繼續條件,遇 0 或負數跳出。val > 0 時累加,符合「只計算正整數」語義。val >= 0,負數觸發結束。n,再用 for 循環讀取 n 個數求和。scanf 替換為 fscanf 從文件讀取。此程式展示了 C 語言處理不定長度輸入的標準模式:while (scanf(...) == 1 && 條件)。掌握此模式可輕鬆應對各類「以哨兵值結束」的輸入處理問題。