• Составьте программу вычисления среднего арифметического отрицательных элементов массива C++

Ответы 5

  • Можно поинтересоваться, зачем для переменных min_sum и total_min_count вы выделяете типом float? Чисел может быть полтора? Одна единичка и половина двоечки? Или какой смысл выделять такой объём памяти ради количества каких-то целочисленных объектов?
  • выделяете тип*
    • Автор:

      jazmine
    • 5 лет назад
    • 0
  • Оу, прощу прощения, не обратил внимание на деление.
    • Автор:

      stevehorn
    • 5 лет назад
    • 0
  • Ничего страшного, но в след. раз повнимательнее)
  • Как-то так:

    #include <iostream>

    using namespace std;

    // В данном примере я использовал типы float, т. к. при попытке делить 3 на 2 мы получаем 1.5, но тип int обрезает все после .

    int main()

    {

       cout << "Task 30240725!" << endl; // just for fun

       int m[12] = {-1,-2,3,4,5,6,7,8,9,10,11,12}; // Инициализируем массив из 12 элементов, чтоб хоть части из них была отрицательная

       // среднее арифметическое состоит из сумма_числел / кол-во_чисел

       float min_sum = 0;          // сумма чисел

       float total_min_count = 0;  // кол-во чисел

       // Инициализиуем цикл от 0 (т. к. все массивы начинаются с 0) до 12 не включительно (т. к. всего элементов 12 начиная с 0. Значит 11)

       for (int i = 0; i < 12; i++) {

           // если текущий элемент массива m от индекса i меньше чем 0, значит это отрицательное число

           if (m[i] < 0) {

               min_sum += m[i];    // складываем, непосредственно, само число m[i]

               total_min_count++;  // увеличиваем кол-во чисел на 1. Можно написать строку вида total_min_count = total_min_count + 1; - суть не поменяется

           }

       }

       // Если в массиве не было отрицательных чисел, то делаем проверку. Если кол_во_чисел и сумма_чисел равны 0 значит в массиве не было отрицательных чисел.

       // а т. к. по умолчанию min_sum и total_min_count равны 0, то при попытке поделить их получим ошибку. Для этого обрабатываем это условие, чтоб не дать ее допустить.

       if (total_min_count == 0 && min_sum == 0) {

           // Выкидываем сообщение, мол, нету в массиве отрицательных чисел, работать не буду

           cout << "There are no negative numbers in the array" << endl;

           // делаем return, дабы программа не продолжила выполнение

           return 0;

       }

       // если же у нас есть и кол-во_чисел и общая_сумма, то спокойно делим одно на другое и сразу выводим в консоль результат.

       cout << "Average: " << min_sum / total_min_count << endl;

       // завершаем выполнение программы

       return 0;

    }

    • Автор:

      kaseyuzr6
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years