t次a+b
#include <stdio.h>
int main()
{
int a,b,t;
scanf("%d",&t);
while(t--){
scanf("%d %d",&a,&b);
printf("%d",a+b);
}
return 0;
}
不定次数的a+b呢?
先看下面的例子
要求编写不定个数相加的程序
//结束输出时 另起一行按ctrl+z 此时scanf的返回值变成-1 不满足while条件 循环结束
//这里ctrl+z相当于文件结束符EOF 跳出循环
#include <stdio.h>
int main()
{
int n,s=0;
while(scanf("%d",&n)==1){
// while(scanf("%d",&n)!=EOF){
//while(scanf("%d",&n)!=-1{
//while(~scanf("%d",&n){
s=s+n;
}
printf("%d",s);
return 0;
}
scanf函数返回值就是读出的变量个数,如果只有一个整数输入,返回值是1,如果有两个整数输入,返回值是2,如果一个都没有,返回值是-1.
EOF是一个预定义的常量,数值为-1
再来写a+b的
稍微修改一下就好啦
#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)==2){//如果a、b均赋值成功返回值为2,只是a赋值成功返回1
// while(scanf("%d %d",&a,&b)=EOF){
// while(scanf("%d %d",&a,&b)!=-1){
// while(~scanf("%d %d",&a,&b)){
printf("%d",a+b);
}
return 0;
}
理解:
#include <stdio.h>//把main函数定义成int类型
int main()
{
int a,b;
//输入结束时,scanf函数返回值为EOF,即没有数据输入时则退出while循环
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
return 0; //返回值为0
}