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

HDU 1000 A + B Problem:ACM 入門第一題完整攻略

     編輯:關於C語言

題目大意

讀取多行輸入,每行兩個整數 A B,輸出它們的和。直到 EOF 結束。最基礎的「掛牌題」。

樣例

Input:
1 1

Output:
2

核心代碼 (C99)

#include <stdio.h>

int main(void) {
    int A, B;
    while (scanf("%d %d", &A, &B) == 2) { // 或 != EOF
        printf("%d\n", A + B);
    }
    return 0;
}

關鍵知識點

  1. EOF 循環:while (scanf("%d %d", &A, &B) != EOF) 或 == 2 (成功讀取兩個)。~scanf(...) 同理。
  2. 換行輸出:printf("%d\n", ...) 確保每行一個結果。
  3. 類型足夠:題目隱含 32 位有符號整數範圍,int 足夠。
  4. 主函數規範:int main(void) 返回 0。

常見錯誤

  • ❌ while (!feof(stdin)) 後跟 scanf:會多執行一次 (EOF 後 feof 才置位)
  • ❌ 忘記 & 取地址
  • ❌ 輸出缺少 \n 導致格式錯誤
  • ❌ 用 C++ cin/cout 未關閉同步 (ios::sync_with_stdio(false)) 可能慢 (本題數據極小無影響)
  • C++ 簡潔版

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        long long A, B; // 防萬一
        while (cin >> A >> B) cout << A + B << '\n';
        return 0;
    }

    總結

    HDU 1000 看似極簡,實則考察「標準輸入循環讀取直到 EOF」這一競技編程最基礎模式。吃透此題,後續所有「多測試用例、未知行數」輸入處理皆可舉一反三。新手必刷,老手秒過。

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