Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.06.2021
Сообщений: 6
1

Найти среднее арифметическое ненулевых элементов в каждой строке матрицы

20.06.2021, 19:58. Показов 2175. Ответов 5

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

Матрицы: найти количество, сумму и среднее арифметическое отрицательных элементов в каждой строке
дан двумерный массив, найти количество, сумму и среднее арифметическое отрицательных элементов в...

Найти среднее арифметическое в каждой строке матрицы А(5,5)
Помогите пожалуйста срочно Среднее арифметическое в каждой строке матрицы А(5,5)

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

Найти среднее арифметическое элементов по каждой строке матрицы
Найти среднее арифметическое элементов по каждой строке матрицы Е(м,n) и записать полученные...

5
429 / 312 / 129
Регистрация: 09.02.2021
Сообщений: 1,096
Записей в блоге: 1
20.06.2021, 23:06 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include<iostream>
#include<iomanip>
#include<ctime>
#include<cstdlib>
using namespace std;
 
int main()
{
    srand(time(NULL));
    int n1, n2, m1, m2,k1=1,k2=1;
    cout << "n1,m1 = "; cin >> n1 >> m1;
    int** a = new int* [n1];
    cout << "Matrix a:" << endl;
    for (int i = 0; i < n1; i++) {
        a[i] = new int[m1];
        for (int j = 0; j < m1; j++) {
            a[i][j] = -10 + rand() % 21;
            if (a[i][j] != 0) {
                k1 *= a[i][j];
            }
            cout <<setw(3)<< a[i][j] << " ";
        }
        cout << endl;
    }
    cout << "n2,m2 = "; cin >> n2 >> m2;
    int** b = new int* [n2];
    cout << "Matrix b:" << endl;
    for (int i = 0; i < n2; i++) {
        b[i] = new int[m2];
        for (int j = 0; j < m2; j++) {
            b[i][j] = -10 + rand() % 21;
            if (b[i][j] != 0) {
                k2 *= b[i][j];
            }
            cout << setw(3) << b[i][j] << " ";
        }
        cout << endl;
    }
    double sum = 0, k = 0;
    if (k1 >= k2) {
        for (int i = 0; i < n1; i++) {
            for (int j = 0; j < m1; j++) {
                if (a[i][j] != 0) {
                    k++;
                    sum += a[i][j];
                }
            }
        }
        cout << "Result = " << sum / k << endl;
    }
    else {
        for (int i = 0; i < n2; i++) {
            for (int j = 0; j < m2; j++) {
                if (b[i][j] != 0) {
                    k++;
                    sum += b[i][j];
                }
            }
        }
        cout << "Result = " << sum / k << endl;
    }
    for (int i = 0; i < n1; i++) {
        delete a[i];
    }
    delete[]a;
    for (int i = 0; i < n2; i++) {
        delete b[i];
    }
    delete[]b;
    system("pause>nul");
    return 0;
}
Но есть нюанс,а если произвидение ненулевих елементов рано в двух матрицах тогда что?В даном коде я сделал что ищет среднее арифметическое первой матрици
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
21.06.2021, 02:43 3
matviiv,
Цитата Сообщение от Sara9 Посмотреть сообщение
среднее арифметическое ненулевых элементов в каждой строке
с функциями не знакомы ?
0
429 / 312 / 129
Регистрация: 09.02.2021
Сообщений: 1,096
Записей в блоге: 1
21.06.2021, 13:43 4
Yetty, Ну так в условии написано что нужно функциями?

Добавлено через 48 секунд
Yetty, Если вам что-то не нравиться, то ви можете написать свое решение
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
21.06.2021, 14:31 5
matviiv, попробую донести то что хотел сказать ещё раз. по условию задачи нужно найти не среднее арифметическое всей матрицы, а среднее арифметическое КАЖДОЙ СТРОКИ матрицы

функции не обязательны, но если в коде есть одинаковые блоки, желательно вынести этот блок в функцию

произведение растёт быстро, для переменной произведения лучше взять более вместительный тип
0
429 / 312 / 129
Регистрация: 09.02.2021
Сообщений: 1,096
Записей в блоге: 1
21.06.2021, 14:37 6
Лучший ответ Сообщение было отмечено Sara9 как решение

Решение

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<iostream>
#include<iomanip>
#include<ctime>
#include<cstdlib>
using namespace std;
 
int main()
{
    srand(time(NULL));
    int n1, n2, m1, m2, k1 = 1, k2 = 1;
    cout << "n1,m1 = "; cin >> n1 >> m1;
    int** a = new int* [n1];
    cout << "Matrix a:" << endl;
    for (int i = 0; i < n1; i++) {
        a[i] = new int[m1];
        for (int j = 0; j < m1; j++) {
            a[i][j] = -10 + rand() % 21;
            if (a[i][j] != 0) {
                k1 *= a[i][j];
            }
            cout << setw(3) << a[i][j] << " ";
        }
        cout << endl;
    }
    cout << "n2,m2 = "; cin >> n2 >> m2;
    int** b = new int* [n2];
    cout << "Matrix b:" << endl;
    for (int i = 0; i < n2; i++) {
        b[i] = new int[m2];
        for (int j = 0; j < m2; j++) {
            b[i][j] = -10 + rand() % 21;
            if (b[i][j] != 0) {
                k2 *= b[i][j];
            }
            cout << setw(3) << b[i][j] << " ";
        }
        cout << endl;
    }
    double sum = 0, k = 0;
    cout << "Result:" << endl;
    if (k1 >= k2) {
        for (int i = 0; i < n2; i++) {
            sum = 0, k = 0;
            for (int j = 0; j < m2; j++) {
                if (b[i][j] != 0) {
                    k++;
                    sum += b[i][j];
                }
            }
            cout << sum / k << endl;
        }
    }
    else {
        for (int i = 0; i < n2; i++) {
            sum = 0, k = 0;
            for (int j = 0; j < m2; j++) {
                if (b[i][j] != 0) {
                    k++;
                    sum += b[i][j];
                }
            }
            cout << sum / k << endl;
        }
    }
    for (int i = 0; i < n1; i++) {
        delete a[i];
    }
    delete[]a;
    for (int i = 0; i < n2; i++) {
        delete b[i];
    }
    delete[]b;
    system("pause>nul");
    return 0;
}
Добавлено через 58 секунд
Yetty, Да про условие не прав,не внимательно прочитал, исправил сверху,про функции нет,потому-что пользователи всегда пишут нужно ли им функции или нет,если пользователь скажет сделаю
1
21.06.2021, 14:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2021, 14:37
Помогаю со студенческими работами здесь

Найти в каждой строке матрицы среднее арифметическое ее элементов
Нужна помощь с простой для кого-то, но нереальной для меня задачкой) Условие задачи под спойлером...

Найти в каждой строке матрицы среднее арифметическое четных элементов
Дана целочисленная прямоугольная матрица размера m×n, заполненная случайными числами. Найти в...

Найти среднее арифметическое отрицательных элементов по каждой строке матрицы
Условие задачи: Найти среднее арифметическое отрицательных элементов по каждой строке матрицы...

Найти среднее арифметическое элементов в каждой строке квадратной матрицы
1.Обработка двумерного массива. Найт среднее арифмитческое элементов в каждой строке квадратной...

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

Найти в каждой строке матрицы среднее арифметическое четных элементов
Дана целочисленная прямоугольная матрица размера m×n, заполненная случайными числами. Найти в...


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

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