Задача
Даны действительные числа [latex] a_1 , a_2 \ldots[/latex]. Известно, что [latex] a_1 > 0[/latex] и что среди [latex] a_1, a_2, \ldots [/latex] есть хотя бы одно отрицательное число. Пусть [latex] a_1 , \ldots, a_n[/latex] -– члены данной последовательности, предшествующие первому отрицательному члену ([latex] n [/latex] заранее неизвестно). Получить:
в) среднее арифметическое [latex] a_1 , \ldots, a_n[/latex]
Тесты
| Ввод | Вывод | 
| 3 -2 -7 2 5 | 3 | 
| 3.4 0.5 0 -7 -8 2 | 1.3 | 
| 1 0 0 -2 | 0.333 | 
| 1.5 2.4 3 3.8 -7.5 11 0 | 2.675 | 
Код на С++
| 1 2 3 4 5 6 7 8 9 10 11 12 | #include <iostream> using namespace std; int main() { 	double sum = 0.0, number = 0.0, x; 	while ((cin >> x) && (x >= 0)) { 		sum += x; 		number++; 	} 	cout << sum/number; 	return 0; } | 
Код на Java
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import java.util.*; import java.lang.*; import java.io.*; class Main { 	public static void main (String[] args) throws java.lang.Exception 	{ 		Scanner in = new Scanner(System.in); 		double sum = 0.0, number = 0.0, x = 1; 		while (in.hasNext() && x >= 0) { 			x = in.nextDouble(); 			sum += x; 			number++; 		} 		System.out.println(sum / number); 	} } | 
Решение
Считываем в цикле числа из стандартного ввода, пока это возможно и пока не встретится отрицательное число. В том же цикле вычисляем сумму введённых чисел и их количество. Возвращаем сумму, делённую на количество, — среднее арифметическое.
 
						
Зачтено