题目链接
题目描述
通过键盘不断输入整数,不断读取,输出其中(读到负数前)所有的非负数的和。
注意:对于每组数据,题目共提供n个整数。
这一题有2种写法
1、统计已输入数字之和,直到输入的数字为负数,跳出循环。
2、读完所有数字,但是只计算第一个负数前所有的非负数的和。
第一种写法程序不会读取完全部输入,但是不会被判错…
Input
第一行输入一个n,第二行输入n个整数,以空格隔开
Output
输出一个数,表示读到负数前,所有非负数的和。
Sample Input
4
3 4 -6 7
Sample Output
7
思路
从第一项起,计算非负数的和,如果遇到负数就不计算,并且不计算第一个负数后面的数。
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(cin >> n)
{
long long sum = 0, a, flag = 0;
for(int i = 0; i < n; i++)
{
cin >> a;
if(a < 0) flag = 1;
if(flag == 0) sum += a;
}
cout << sum << endl;
}
return 0;
}