首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言輸入整數序列求和:以 0 為終止條件的經典實現

     編輯:關於C語言

題目需求

從鍵盤讀取一系列整數,當輸入的數值 小於或等於 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

關鍵點解析

  1. 循環條件:scanf("%d", &val) == 1 確保成功讀取整數;val > 0 作為繼續條件,遇 0 或負數跳出。
  2. 累加邏輯:僅當 val > 0 時累加,符合「只計算正整數」語義。
  3. 輸入提示:每次循環前輸出提示,提升互動體驗。

常見變體

  • 以負數結束:將條件改為 val >= 0,負數觸發結束。
  • 固定個數輸入:先讀取 n,再用 for 循環讀取 n 個數求和。
  • 文件輸入:將 scanf 替換為 fscanf 從文件讀取。

總結

此程式展示了 C 語言處理不定長度輸入的標準模式:while (scanf(...) == 1 && 條件)。掌握此模式可輕鬆應對各類「以哨兵值結束」的輸入處理問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved