Дано k наборов ненулевых целых чисел. признаком завершения каждого набора является число 0. для каждого набора вычислить среднее арифметическое его элементов. решить в с++

АлинаКравченко АлинаКравченко    2   02.09.2019 19:40    4

Ответы
nomar nomar  06.10.2020 13:03
#include <iostream>
using namespace std;

int main()
{
    double S = 0;
    int N = 0, K = 0, A;
    cout <<"K = ",cin >> K;
    for(int i = 0; i < K; i++)
    {
        cout <<"Nabor "<<i<<": ";
        S = 0;
        N = 0;
        cin >> A;
        while(A != 0)
        {
            S+=A;
            N++;
            cin >> A;
        }
        if (N!=0) cout <<"Sr = "<<S/N<<"\n";
        else cout <<"Na noll delit' nel'zja!\n";
    }
    return 0;
}
ПОКАЗАТЬ ОТВЕТЫ
Айдан88 Айдан88  08.01.2024 18:14
Хорошо, давайте решим эту задачу пошагово. Предположим, что у нас уже есть k наборов ненулевых целых чисел.

Шаг 1: Создаем переменные
Сначала мы должны создать несколько переменных для хранения данных. Давайте создадим переменные для хранения суммы и количества элементов каждого набора, а также переменную для хранения среднего арифметического.

```c++
int sum = 0; // переменная для хранения суммы элементов
int count = 0; // переменная для хранения количества элементов
double average = 0.0; // переменная для хранения среднего арифметического
```

Шаг 2: Ввод чисел и вычисление среднего арифметического
Теперь мы должны вводить числа из каждого набора и вычислять сумму и количество элементов. Когда мы получаем число 0, это означает конец набора. Затем мы можем использовать эти значения, чтобы вычислить среднее арифметическое.

```c++
// Ввод чисел
cout << "Введите наборы чисел (для завершения введите 0):\n";

while (true) {
int num;
cin >> num;

if (num == 0) { // если num равно 0, то это конец набора
if (count == 0) { // если count равно 0, значит набор был пустым
cout << "Набор пуст\n";
} else {
average = static_cast(sum) / count; // вычисляем среднее арифметическое
cout << "Среднее арифметическое: " << average << "\n";
}

// сбрасываем значения для следующего набора
sum = 0;
count = 0;

if (num == 0) { // если num равно 0, значит все наборы обработаны
break;
}
} else { // если num не равно 0, то продолжаем считать элементы набора
sum += num; // добавляем число к сумме
count++; // увеличиваем счетчик элементов
}
}
```

Здесь мы используем бесконечный цикл, чтобы вводить числа. Если мы получаем число 0, то проверяем, был ли набор пустым или нет. Если набор не был пустым, то вычисляем среднее арифметическое, используя значение суммы и количества элементов. Затем мы сбрасываем значения для следующего набора.

После завершения цикла, все наборы обработаны и на экран выведены средние арифметические каждого набора.

Это полное решение задачи. Оно позволяет пользователю вводить произвольное количество наборов и произвольные числа в каждом наборе. Решение также печатает сообщение, если набор пустой. Обратите внимание, что среднее арифметическое вычисляется как вещественное число для получения более точного результата.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика