问题 1045 --输入输出练习(问题已改,看看知识点)

1045: 输入输出练习(问题已改,看看知识点)

时间限制: 1 Sec  内存限制: 128 MB
提交: 31  解决: 3  分值: 4
[提交][记录][讨论版][命题人:]

题目描述

给出n个整数,计算这些整数的和。

-----------------------------------------------

此题虽然没有说出切确的输入次数,但已告诉你在n为0时结束,因此我们可以以n==0为结束判定条件。另外,此题有超过十万级的读入量,在使用cin进行读入时很可能会超时,因此建议使用scanf进行读入或者关闭cin和cout的stdio同步(输出量非常巨大的时候也一样)。但需要注意一点,在关闭stdio同步后不能再使用C风格输入输出(包括scanf,printf,gets,puts,getchar等),否则提交上OJ后可能会出现各种奇怪的错误。
因此我们可以写出如下代码:
C语言版:
#include<stdio.h>
int main() {
	int i, n, sum, a;
	while (scanf("%d", &n), n) { // 逗号运算符,最右边的值为整个表达式的值
		sum = 0;
		for (i = 0; i<n; i++) {
			scanf("%d", &a);
			sum += a;
		}
		printf("%d\n", sum);
	}
	return 0;
C++代码
#include<iostream>
using namespace std;
int main() {
	ios::sync_with_stdio(false); // 关闭与stdio同步
	int n, sum, a;
	while (cin >> n, n) {
		sum = 0;
		for (int i = 0; i<n; i++) {
			cin >> a;
			sum += a;
		}
		cout << sum << endl;
	}
	return 0;
}


输入

输入有多组。
每组第一行是一个数字n (0<n<800000)。
第二行有n个整数,每个整数都在区间[-100, 100]之内。
当n为0时结束输入。

输出

对于每组输入,输出一行,即n个整数的和。

样例输入

2
1 5
4
1 2 3 4
0

样例输出

6
10

提示




来源

 

[提交][记录]