2020-03-10

柔情痞子 提交于 2020-03-10 20:40:15

A+B for Input-Output Practice (Ⅲ&Ⅳ)

题目输入输出格式如下(Ⅲ):

Input
输入包含多个测试用例。每个测试用例包含一对整数a和b,每行一对整数。包含0 0的测试用例终止输入,并且不处理此测试用例。
Output
对于每一对输入整数a和b,您应该在一行中输出a和b的和,并且在输入的每一行中输出一行。
Sample Input
1 5
10 20
0 0
Sample Output
6
30
解析:并不是很难,只需要注意输入0 0时结束即可。直接上代码。

#include<stdio.h>
int main(){
long long a,b;
while(1){
scanf("%lld%lld",&a,&b);
if(a0&&b0) break;
printf("%lld\n",a+b);
}
}

题目的输入格式如下(Ⅳ):

Input
输入包含多个测试用例。每个测试用例包含一个整数N,然后N个整数跟随在同一行中。以0开头的测试用例终止输入,不处理此测试用例。
Output
对于每一组输入整数,应该将它们的和输出到一行,对于输入中的每一行,应该输出一行。
Sample Input
4 1 2 3 4
5 1 2 3 4 5
0
Sample Output
10
15
解析: 如果0开头即为结束,这道题有两种做法。
中规中矩的做法:
#include <stdio.h>
int main(){
int a,sum=0,num,i,j;
while(1){
scanf("%d",&a);
if(a==0) break;
for(i=0;i<a;i++){
scanf("%d",&num);
sum+=num;
}
printf("%d\n",sum);
sum=0;
}
}

其实判断等于零的结束方法还有一种,就是&&
有件事必须要知道的(讲给新手):
1&&3=true
因为非零即为真,但是如果出现了一个0,另一个却是正数,那么返回的就是false
由此可以有相对改变一些的方法:
#include <stdio.h>
int main(){
int a,sum=0,num,i,j;
while(scanf("%d",&a)&&a){
for(i=0;i<a;i++){
scanf("%d",&num);
sum+=num;
}
printf("%d\n",sum);
sum=0;
}
}

总结,第二天的题难度也不是太大,自己也是睡醒了才看到同社团的同窗把答案先交了之后才反应过来要写的,唉~太快了
不过还好题不是特别难,期待明天的题目
加油~

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!