a+b问题中的多组输入


基本情况(不多组)

输入a、b(空格隔开),输出a+b

样例输入

3 4

样例输出

7

程序

#include<stdio.h>
int main(){
	int a,b;
	scanf("%d%d",&a,&b);
	printf("%d\n",a+b);
	return 0;
}

已知个数的多组输入

输入第一行有一个数t,接下来有t组数据。每组为一行,两个整数a、b(空格隔开)

要求输出a+b

样例输入

2
3 4
1 2

样例输出

7
3

程序

#include<stdio.h>
int main(){
	int t;
	scanf("%d",&t);
	while(t--){//相当于for(int i=0;i<t;i++)
        int a,b;
		scanf("%d%d",&a,&b);
		printf("%d\n",a+b);
	}
}

不知道个数的多组输入

(南信大OJ大多数为这种,有部分题是这种但没在题目中说明,因此建议不是第二种情况(没告诉你t)的话统一按照这种写)

多组输入,每组为一行,两个整数a、b(空格隔开)

要求输出a+b

样例输入

3 4
1 2

样例输出

7
3

分析

windows下,Ctrl+Z,表示终止输入,相当于文件读写时遇到了文件结尾。

scanf函数具有返回值,表示成功读取的变量个数。比如scanf("%d%d",&a,&b)这条语句,正常输入,返回值是2;输入一个数就遇到Ctrl+Z时,成功读取1个,返回1;如果什么都没输入就Ctrl+Z了,就返回EOF(End Of File)。

EOF是stdio.h定义的宏,为常量-1。c语言中0表示逻辑假,非0表示逻辑真,因此scanf()+1scanf()!=-1scanf()!=EOF~scanf()等价。

程序

#include<stdio.h>
int main(){
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF){
		printf("%d\n",a+b);
	}
	return 0;
}

输出时,每一组算完,直接输出即可

不需要等全部算完一起输出


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM