C/C++编程学习 - 第22周 ② 非负数的和

题目链接

题目描述

通过键盘不断输入整数,不断读取,输出其中(读到负数前)所有的非负数的和。

注意:对于每组数据,题目共提供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;
}

猜你喜欢

转载自blog.csdn.net/qq_44826711/article/details/113572541