傳送門簡單的A+B問題
題目描述
輸入兩個整數a和b,計算a+b的和
本題很簡單,但是注意此題是多組測試資料,即需要不停的接收系統的測試輸入,你都可以計算結果并輸出
輸入格式
輸入兩個整數A和B
範圍不超過2^10
輸出格式
求A+B
樣例輸入
1 1
10 20
樣例輸出
2
30
思路:
本題的代碼其實很簡單,但往往忽略樣例是不斷輸入的,且并不需要在輸入前規定有幾個樣例被輸入。是以我們可以用while來解題
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
int a,b;
/* while(cin>>a>>b)
cout<<a+b<<endl; */
while(scanf("%d%d",&a,&b)!=EOF)
printf("%d\n",a+b);
return 0;
}
當上面的程式運作時,如果不加" != EOF",那麼這個程式就是個死循環,會一直運作下去;加上" != EOF"後該程式就不是死循環了,如果在終端不進行輸入該程式會自動結束(while的意思就是說當目前輸入緩存還有東西時就一直讀取,直到輸入緩存中的内容為空時停止)。
在這"scanf(“%d”,&n) != EOF"相當于"~scanf(“%d”,&n)“,或"scanf(”%d",&n) == 1 " 。scanf的傳回值由後面的參數決定
有小夥伴會問到上面那個程式怎麼結束呢?
要注意的是:在終端(黑框)中手動輸入時,系統并不知道什麼時候到達了所謂的“檔案末尾”,是以需要用<Ctrl + z>組合鍵然後按 Enter 鍵的方式來告訴系統已經到了EOF,這樣系統才會結束while.
詳細解釋請看這個網址