只有一组

输入格式:

输入两个正整数a和b,中间用空格隔开。

输出格式:

输出一个正整数,a与b的和

输入样例:

1 2

输出样例:

3

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b;
    cin>>a>>b;
    cout<<a+b<<endl;
    return 0;
} 

解析:

最简单的输入输出方法,只有一组,接收计算即可。

利用零结尾

输入格式:

多组测试数据,每组测试数据占一行,包括2个整数a,b。如果输入0 0,则表示输入结束。

输出格式:

每组测试数据占一行,输出两个整数的和。

输入样例:

1 5
10 20
0 0

输出样例:

6

30

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b;
//  while(scanf("%d%d",&a,&b)&&a){
//      cout<<a+b<<endl;
//  }
    while(cin>>a>>b&&a){
        cout<<a+b<<endl;
    }
    return 0;
} 

解析:

当遇到零的时候即输入结束,所以再循环的判断处,判断一下a是否为零,当然这种情况,如果遇到a是零的时候,但b有效时就会判错。

给定组数

输入格式:

给定一个正整数n,随后n行,代表n组数据,每组测试数据占一行,包括2个整数a,b。

输出格式:

每组测试数据占一行,输出两个整数的和。

输入样例:

2

1 5
10 20

输出样例:

6

30

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        int a,b;
        cin>>a>>b;
        cout<<a+b<<endl;
    }
    return 0;
}

解析:

题目中给定组数的数量,一套循环直接出来答案。也是最常见的一种输入方式。

无结尾标识符

输入格式:

输入包括多组数据,每组数据占一行,包括两个正整数

输出格式:

对于输入的每一组数据,输出他们的和,每组输出占一行。

输入样例:

1 5
10 20

输出样例:

6
30

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b;
//  while(scanf("%d%d",&a,&b)!=EOF){
//      cout<<a+b<<endl;
//  }
//  while(~scanf("%d%d",&a,&b)){
//      cout<<a+b<<endl;
//  }
    while((cin>>a>>b)!=0){
        cout<<a+b<<endl;
    }
    return 0;
}

解析:

EOF是文件结尾标志,因为OJ判题都是从文件中读取数据,所以直接用EOF即可,可以再调试的时候使用CTRL+Z进行模拟。

~是C语言中的按位取反,当没有数据输入时,scanf返回-1,按位取反后即为0

当遇到文件结尾时,cin返回0,所以进行判断。

这种输入也是比较常见的输入方式。


一只小菜鸡