题目描述
你的任务是计算若干整数的和。
输入
输入的第一行为一个整数N,接下来N行每行先输入一个整数M,然后在同一行内输入M个整数。
输出
对于每组输入,输出M个数的和,每组输出之间输出一个空行。
样例输入
3 4 1 2 3 4 5 1 2 3 4 5 3 1 2 3
样例输出
10 15 6
源代码
#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
int n,m,a;
int sum = 0;
scanf("%d",&n);
for(int i = 0; i < n; i ++){
while(scanf("%d",&m) != EOF){
for(int j = 0; j < m; j ++){
scanf("%d",&a);
sum += a;
}
printf("%d\n\n",sum);
sum = 0;
}
}
return 0;
}
总结
一开始运行错误,是把while循环提到前面,直接去判断是否输入完成,之后导致m和之后的取值有问题,从而使运行结果不正确。重新看题后,发现应该首先输入n,然后再以n作为循环的遍数,然后输入m和之后的数进行相加,得出的结果正确。