На c++ дана последовательность целых чисел a1, a2, a3, an, заканчивающаяся числом 0 (само число 0 в последовательность не входит, то есть ai≠0). требуется вывести на экран числа этой последовательности, которые были больше среднего арифметического. формат входных данных программе дается последовательность целых чисел. гарантируется, что объём входных данных не превышает 1 мб. все числа по модулю не превосходят 230. формат выходных данных требуется вывести в первой строке количество чисел больших среднего арифметического, а затем во второй строке сами эти числа через пробел.

яна1767 яна1767    1   15.09.2019 18:40    8

Ответы
Андрей22256987654 Андрей22256987654  07.10.2020 17:59
#include <bits/stdc++.h>

using namespace std;

int main()
{
    vector<int> a;
    int cnt = 0;
    double average = 0;
    while (true)
    {
        int tmp;
        cin >> tmp;
        if (!tmp)
            break;
        cnt++;
        a.push_back(tmp);
        average += tmp;
    }
    average /= cnt;
    int ans = 0;
    vector<int> b;
    for (int i = 0; i < cnt; i++)
        if (a[i] > average)
            ans++, b.push_back(a[i]);
    cout << ans << endl;
    for (int i = 0; i < b.size(); ++i)
        cout << b[i] << ' ';
}
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика