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

C 語言計算輸入數字中所有偶數位之和

     編輯:關於C語言

題目需求

讀入一個數字字串(可超大,超出 long long 範圍),計算各位數字中**偶數位**的總和並輸出。

字串處理法(支援任意長度)

#include 
#include 

int main() {
    char num[101] = {0};  // 支援 100 位數
    scanf("%100s", num);  // 防緩衝區溢位

    int sum = 0;
    for (int i = 0; num[i] != '\0'; i++) {
        int digit = num[i] - '0';
        if (digit % 2 == 0) sum += digit;
    }
    printf("%d\n", sum);
    return 0;
}

關鍵點解析

  1. 字串讀取:用 %s 讀入字元陣列,避免整數溢位,支援超大數字。
  2. 字元轉數值:num[i] - '0' 將 ASCII 碼轉為對應整數 (0-9)。
  3. 偶數判斷:digit % 2 == 0,注意 0 是偶數,會被加入總和(不影響結果)。
  4. 緩衝區保護:scanf("%100s", num) 限制最大讀取長度,防止溢位攻擊。

整數運算法(適用 64 位整數範圍內)

#include 

int main() {
    long long n;
    scanf("%lld", &n);
    int sum = 0;
    while (n != 0) {
        int d = n % 10;
        if (d % 2 == 0) sum += d;
        n /= 10;
    }
    printf("%d\n", sum);
    return 0;
}

總結

針對「位數運算」類題目,**字串處理法最通用、最安全**,不受資料型別範圍限制,是競程與面試的標準解法。

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