Предмет: Информатика, автор: Vertos26122006

НА C++



Дана последовательность целых чисел a1, a2, a3, ..., an, заканчивающаяся числом 0 (само число 0 в последовательность не входит, то есть ai≠0).

Требуется вывести на экран числа этой последовательности, которые были больше среднего арифметического.

Программе дается последовательность целых чисел. Гарантируется, что объём входных данных не превышает 1 Мб. Все числа по модулю не превосходят 230.

Требуется вывести в первой строке количество чисел больших среднего арифметического, а затем во второй строке сами эти числа через пробел.
входные данные выходные данные
2
7
3
5
6
0
3
7 5 6

НА С++

Ответы

Автор ответа: leonidkorolev2007
1

Ответ:

#include <iostream>

#include <vector>

using namespace std;

bool f(int n) {

for (int i = 2; i <= sqrt(n); i++)

 if (n % i == 0)

  return false;

return true;

}

int main() {

int a,n=0,n2=0,sum=0;

string res="";

 

do {

 cin >> a;

 if (a != 0) {

  sum += a;

  n++;

  if (float(a) > float(sum) / float(n)) { n2++; res += (a + '0'); res += ' '; };

 }

} while (a!=0);

cout <<endl<< n2<<endl;

cout << res;

}

Объяснение:

Похожие вопросы