本文轉自 迂者-賀利堅 老師的文章,感謝賀老師,很受益。
- 最簡單的輸入
Description
計算 a+b
Input
兩個整數 a,b
Output
a+b的值
Sample Input
1 2
Sample Output
3
- 這種最簡單的輸入,接受一組輸入,針對這組輸入計算出值即可。這與平時的程序設計並無差異。解決辦法是:
#include <iostream>
using namespace std;
int main(){
int a,b;
cin >> a >> b;
cout << a+b << endl; //對其他題目,換成要求的複雜處理與輸出
return 0;
}
- 一次運行,要輸入多組數據,直到讀至輸入文件末尾(EOF)爲止
Description
計算 a + b
Input
多組由兩個整數(a和b)構成的輸入,a和b之間用空格隔開,每組輸入單獨佔一行
Output
每組的兩個整數(a和b)求和並輸出,每組的求和結果獨佔一行
Sample Input
1 5
10 20
400 516
Sample Output
6
30
916
- 這種輸入包含多對輸入數據,但沒有指出到底有多少對輸入,要有辦法判斷輸入何時結束。解決辦法是:
#include <iostream>
using namespace std;
int main() {
int a, b;
while (cin >> a >> b) {
cout << a + b << endl;
}
return 0;
}
- 當讀到輸入結束時,cin >> a >> b返回 0,循環也結束。
- 在調試程序時,鍵盤輸入的數據,用CTRL+Z(即按住CTRL鍵不放,再按下Z)組合作爲輸入結束,此謂鍵盤輸入設備的“文件末尾”。
- 一次運行,要輸入多組數據,組數由第一個輸入數據決定(在開始的時候輸入一個N,接下來是N組數據)
Description
計算 a + b
Input
第一行是數據的組數N,從第二行是N組由兩個整數(a和b)構成的輸入,a和b之間用空格隔開,每組輸入單獨佔一行
Output
每組的兩個整數(a和b)求和並輸出,每組的求和結果獨佔一行
Sample Input
2
1 5
10 20
Sample Output
6
30
- 需要先讀入第一行確定組數N,而後寫一次執行N次的循環進行處理即可。解決辦法是:
#include <iostream>
using namespace std;
int main() {
int a, b, n;
cin >> n;
while (n--) {
cin >> a >> b;
cout << a + b << endl;
}
return 0;
}
- 輸入不說明有多少組數據,但以某個特殊輸入爲結束標誌。平時做題中常見諸如“輸入學生成績,以-1結束”。
Description
計算 a + b
Input
多組由兩個整數(a和b)構成的輸入,a和b之間用空格隔開,每組輸入單獨佔一行。當輸入爲 0 0 時,輸入結束。
Output
每組的兩個整數(a和b)求和並輸出,每組的求和結果獨佔一行。
Sample Input
1 5
10 20
0 0
Sample Output
6
30
- 構造循環對數據進行處理,將是否遇到了要求結束的輸入,作爲循環是否結束的依據。解決辦法是:
#include<iostream>
using namespace std;
int main() {
int a, b;
while (cin >> a >> b && (a || b)) {
cout << a + b << endl;
}
return 0;
}