题目描述
输入两个整数a和b,计算a+b的和(注意此题是多组测试数据)
输入
输入两个整数A和B(范围不超过2^10)
输出
求A+B
样例输入
1 1
10 20
样例输出
2
30
题目限制要求
时间限制: 1Sec 内存限制: 128MB
解题思路
①输入两个整数 (范围不超过2^10)----> int型(此题博主用short int型(16bit))
②多组测试数据 ----> while循环
③求A+B
C语言代码
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
while(~scanf("%d%d", &a, &b)){ //while(~scanf("%d%d",&a,&b)) <=> while(scanf("%d%d",&a,&b)!=EOF),其中EOF是while循环中的文件结束标志(一次输入多组数据,当输入遇到遇到错误或end of file,scanf()的返回值为EOF)
printf("%d\n",a+b);
}
return 0;
}
C++代码
#include<iostream>
using namespace std;
int main()
{
int a = 0;
int b = 0;
while(cin>>a>>b){ //输入后返回一个cin,接着可以继续操作读取了,当输入不符合类型和EOF时停止(退出循环)。
cout<<(a+b)<<endl;
}
return 0;
}
scanf()和cin的不同之处
scanf
scanf()是输入函数,函数原型是 int scanf(const char format, …); 其返回值是正确按指定格式输入变量的个数,也即能正确接收到值的变量个数。如果输入数据与指定格式不符,则会产生输入错误。遇到输入错误,scanf函数会立即终止,返回已经成功读取的数据的个数*
eg:scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入或a未被成功读入但b符合格式,返回值为0
如果遇到错误或遇到end of file,返回值为EOF
综上述:scanf函数的第一个变量格式不正确时返回值为0,当scanf函数的第n个变量格式不正确时,返回值为n-1,当遇到错误或遇到end of file,返回值为EOF。
cin
cin是标准输入流对象(行缓冲),当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,cin就会检测输入缓冲区中是否有了可读的数据。缓冲区为空时,cin的成员函数会阻塞等待数据的到来,一旦缓冲区中有数据,就触发cin的成员函数去读取数据。