0 / 0 / 0
Регистрация: 09.12.2016
Сообщений: 66
1

Подсчитать среднее арифметическое отрицательных чисел двумерного массива

12.01.2017, 19:49. Показов 4769. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, помогите пожалуйста с заданием. Нужно задать двумерный массив и подсчитать в нем среднее арифметическое отрицательных чисел. Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2017, 19:49
Ответы с готовыми решениями:

Массивы. Найти среднее арифметическое отрицательных чисел и подсчитать количество чисел, входящих в диапазон
Всем привет! Начал изучать C++, сталкнулся вот с такой задачей Произвести следующую обработку 15...

Дана последовательность целых чисел.Подсчитать среднее арифметическое отрицательных элементов
Тема: Одномерный массив. Дана последовательность целых чисел.Подсчитать среднее арифметическое...

Дана последовательность целых чисел. Подсчитать среднее арифметическое отрицательных элементов
Дана последовательность целых чисел. Подсчитать среднее арифметическое отрицательных элементов.

Подсчитать сумму положительных и среднее арифметическое отрицательных элементов массива
Разработать программы по формированию и обработке одномерного и двумерного массивов. Полученные...

9
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
12.01.2017, 20:16 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
int main()
{
    std::vector < std::vector<int> > v
    {
        {-1,2,3,-5},
        {4,5,-6,8},
        {-7,-8,-9,3}
    };
 
    int count = 0, sum = 0;
    auto lambda = [&](const int s, const int v)
    {
        if (v < 0)
        {
            sum = s + v;
            ++count;
        }
        return sum;
    };
 
    for (const auto& row : v)
    {
        std::accumulate(
            row.begin(),
            row.end(),
            sum,
            lambda
        );
    }
 
    std::cout << static_cast<double>(sum)/count << std::endl;
 
    return 0;
}
Добавлено через 48 секунд
-6
Для продолжения нажмите любую клавишу . . .

-1 -5 -6 -7 -8 -9 = -36
-36 / 6 = -6
1
147 / 147 / 104
Регистрация: 13.11.2016
Сообщений: 557
12.01.2017, 20:22 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main()
{
    setlocale (LC_ALL, "rus");
    srand((unsigned)time(NULL));
    int n, m, count=0;
    double sr, sum =0;
    cout << "Введите размерность массива NxM:" << endl;
    cin >> n >> m;
    int **arr = new int *[n];
    for (int i=0; i<n; i++)
        arr[i] = new int [m];
    cout << "Массив:" << endl;
    for (int i=0; i<n; i++){
        for (int j=0; j<m; j++){
            arr[i][j] = rand()%20 - 7;
            cout << arr[i][j] << '\t';
        }
        cout << endl;
    }
    for (int i=0; i<n; i++){
        for (int j=0; j<m; j++){
            if (arr[i][j] <0){
                sum+=arr[i][j];
                count++;
            }
        }
    }
    sr = sum/count;
    cout << "Cреднее арифметическое отрицательных чисел" << sr << endl;
    delete [] arr;
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 09.12.2016
Сообщений: 66
12.01.2017, 20:24  [ТС] 4
А можете пожалуйста поподробнее объяснить, что значат все эти функции. Мне нужен в си, а пока не разбираюсь в таких командах как row.begin и т.д. Мне нужен код попроще, но все равно спасибо. Вот это часть кода не понятна:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 for (const auto& row : v)
    {
        std::accumulate(
            row.begin(),
            row.end(),
            sum,
            lambda
        );
    }
 
    std::cout << static_cast<double>(sum)/count << std::endl;
 
    return 0;
}
0
147 / 147 / 104
Регистрация: 13.11.2016
Сообщений: 557
12.01.2017, 20:30 5
Цитата Сообщение от Milka123 Посмотреть сообщение
Мне нужен код попроще
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main()
{
    setlocale (LC_ALL, "rus");
    srand((unsigned)time(NULL));
    int n, m, count=0;
    double sr, sum =0;
    cout << "Введите размерность массива NxM:" << endl;
    cin >> n >> m;
    int **arr = new int *[n];
    for (int i=0; i<n; i++)
        arr[i] = new int [m];
    cout << "Массив:" << endl;
    for (int i=0; i<n; i++){
        for (int j=0; j<m; j++){
            arr[i][j] = rand()%20 - 7;
            cout << arr[i][j] << '\t';
        }
        cout << endl;
    }
    for (int i=0; i<n; i++){
        for (int j=0; j<m; j++){
            if (arr[i][j] <0){
                sum+=arr[i][j];
                count++;
            }
        }
    }
    sr = sum/count;
    cout << "Cреднее арифметическое отрицательных чисел" << sr << endl;
    delete [] arr;
    system("pause");
    return 0;
}
1
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
12.01.2017, 20:33 6
Цитата Сообщение от Milka123 Посмотреть сообщение
Мне нужен в си
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
int main()
{
    const int COLS = 4, ROWS = 3;
 
    int v[ROWS][COLS] = 
    {
        { -1,2,3,-5 },
        { 4,5,-6,8 },
        { -7,-8,-9,3 }
    };
 
    int count = 0, sum = 0;
    for (int i = 0; i < ROWS; ++i)
    {
        for (int j = 0; j < COLS; ++j)
        {
            if (v[i][j] < 0)
            {
                sum += v[i][j];
                ++count;
            }
        }
    }
 
    printf("%.2f\n", ((double)(sum)) / count);
 
    return 0;
}
1
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
12.01.2017, 20:34 7
Milka123, вот мой вариант программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cstdlib>
#include <locale>
 
using namespace std;
 
int main()
{
    srand((unsigned)time(NULL));
    int N, sum, k;
    cout << "Введите размерность матрицы:" << endl;
    cout << "N = ";
    cin >> N;
    int** A = new int*[N];
    for (int i = 0; i < N; i++)
    {
        A[i] = new int[N];
    }
    cout << "Исходная матрица:" << endl;
    sum = k = 0;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            A[i][j] = -99 + (rand() % 199);
            if (A[i][j] < 0)
            {
                sum += A[i][j];
                k++;
            }
            cout.width(3);
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
    cout.precision(2);
    cout << fixed << "Среднее арифметическое отрицательных чисел: " << (double) sum / k << endl;
    for (int i = 0; i < N; i++)
    {
        delete[] A[i];
    }
    system("pause");
    return 0;
}
1
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
12.01.2017, 20:40 8
Цитата Сообщение от FreeYourMind Посмотреть сообщение
C++
1
2
3
int **arr = new int *[n];
* * for (int i=0; i<n; i++)
* * * * arr[i] = new int [m];
Цитата Сообщение от FreeYourMind Посмотреть сообщение
C++
1
delete [] arr;
утечка.
Цитата Сообщение от Fixer_84 Посмотреть сообщение
C++
1
2
3
4
5
int** A = new int*[N];
* * for (int i = 0; i < N; i++)
* * {
* * * * A[i] = new int[N];
* * }
Цитата Сообщение от Fixer_84 Посмотреть сообщение
C++
1
2
3
4
for (int i = 0; i < N; i++)
* * {
* * * * delete[] A[i];
* * }
утечка.

Добавлено через 3 минуты
Выделение динамической памяти для двумерного массива.
1
0 / 0 / 0
Регистрация: 09.12.2016
Сообщений: 66
12.01.2017, 20:48  [ТС] 9
Спасибо за помощь!
0
147 / 147 / 104
Регистрация: 13.11.2016
Сообщений: 557
12.01.2017, 20:58 10
dailydose, спасибо за поправку
1
12.01.2017, 20:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2017, 20:58
Помогаю со студенческими работами здесь

Подсчитать сумму положительных и среднее арифметическое отрицательных элементов массива
Здравствуйте , помогите решить задачу: Дан одномерный массив размером М. Подсчитать сумму...

Вычислите среднее арифметическое положительных и среднее арифметическое отрицательных чисел
Дано n вещественных чисел,которые вводятся с клавиатуры. Вычислите среднее арифметическое...

Среднее арифметическое двумерного массива
Нужна функция аргументом,которой передается 2х мерный числовой массив.Результатом функции...

Вычислить среднее арифметическое отрицательных чисел
Ввести с клавиатуры n произвольных целых чисел и вычислить среднее арифметическое отрицательных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru