传送门简单的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.
详细解释请看这个网址