輸入多行,每行三個整數 A、B、C(範圍 -2^31 到 2^31-1),輸出每行三數之和。輸入以 EOF 結束。
#include <stdio.h>
int main(void) {
long long a, b, c; // 32 位 int 相加可能溢出,用 64 位 long long
while (scanf("%lld %lld %lld", &a, &b, &c) == 3) {
printf("%lld\n", a + b + c);
}
return 0;
}
== 3 表示三個整數全部讀取成功。scanf 返回 EOF(通常為 -1),循環條件失效自動退出。long long(至少 64 位)存儲輸入與結果。格式符 %lld。int 導致溢出錯誤while(scanf(...) != EOF):若輸入行格式錯誤(如只有兩個數),scanf 返回 2,非 EOF,循環繼續但變量值未更新,導致死循環或錯誤輸出scanf 自動跳過空白符,無需額外 getchar()#include <iostream>
using namespace std;
int main() {
long long a, b, c;
while (cin >> a >> b >> c)
cout << a + b + c << endl;
return 0;
}
cin >> a >> b >> c 返回流對象,布爾語境下轉換為讀取成功與否,行為等價。