Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
8 / 5 / 1
Регистрация: 15.12.2020
Сообщений: 349
1

Произведение всех положительных элементов (матрицы)

24.04.2022, 17:00. Показов 589. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужна помощь! как можно посчитать произведение всех
ее положительные элементы (матрицы)?
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
#define _USE_MATH_DEFINES
#include <iostream>
//#include <Windows.h>
#include <cmath>
#include <clocale>
#include <limits.h>
 
//#define M_PI  180
using namespace std;
 
const int N = 10;
const int M = 10;
void display(int* result, int n)
{
    for (int i = 0; i < n; i++)
        cout << result[i] << " ";
    cout<<endl;
}
 
void mini_row(int mat[M][N], int m, int n)
{
    int i = 0, j;
    int min = INT_MAX;
    int result[M];
    while (i < m)
    {
        for (j = 0; j < n; j++)
        {
            if (mat[i][j] < min)
            {
                min = mat[i][j];
            }
        }
        result[i] = min;
        min = INT_MAX;
        i++;
 
    }
    display(result, m);
}
int main()
{
    int i, j;
    int mat1[M][N];
    cout<<"Enter matrix size m n:";
    int m,n;
    cin>>m>>n;
    if(m>M)m=M;
    if(n>N)n=N;
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
            cin >> mat1[i][j];
    }
 
    mini_row(mat1, m, n);
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2022, 17:00
Ответы с готовыми решениями:

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

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

Найти минимальный элемент матрицы и произведение всех ее положительных элементов
Найти минимальный элемент матрицы заданного размера ипроизведение всех ее положительных элементов....

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

Найти минимальный элемент матрицы заданного размера и произведение всех ее положительных элементов
Помогите решить задачу. Вот условие: Найти минимальный элемент матрицы заданного размера и...

3
403 / 261 / 167
Регистрация: 13.01.2021
Сообщений: 1,162
24.04.2022, 17:41 2
VictorVAlduin,
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
template <typename T>
void Print(T** arr, const int& rows, const int& columns){
    for(int i = 0; i < rows; ++i){
        for(int j = 0; j < columns; ++j){
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}
template <typename T>
double Multiplication(T** arr, const int& rows, const int& columns){
    double multiplication = 1;
    for(int i = 0; i < rows; ++i){
        for(int j = 0 ; j < columns; ++j){
            if(arr[i][j] > 0){
                multiplication *= arr[i][j];
            }
        }
    }
    return multiplication;
}
int main()
{
    srand(time(NULL));
    int rows, columns;
    cout << "Введите количество рядков матрицы: ";
    cin >> rows;
    cout << "Введите количество столбцов матрицы: ";
    cin >> columns;
    double** arr = new double* [rows];
    for(int i = 0; i < rows; ++i){
        arr[i] = new double[columns];
        for(int j = 0; j < columns; ++j){
            arr[i][j] = 0.1 * (rand() % 201 - 100);
        }
    }
    Print(arr, rows, columns);
    double multiplication = Multiplication(arr, rows, columns);
    cout << "Произведение положительных элементов равно: " << multiplication << endl;
    return 0;
}
1
8 / 5 / 1
Регистрация: 15.12.2020
Сообщений: 349
24.04.2022, 20:25  [ТС] 3
А возможно ли в моем коде сделать так чтобы считал произведение положительных чисел?БУду благодарен в помощи!
0
403 / 261 / 167
Регистрация: 13.01.2021
Сообщений: 1,162
25.04.2022, 10:54 4
Лучший ответ Сообщение было отмечено VictorVAlduin как решение

Решение

VictorVAlduin, можно, но ваша программа считается не правильной со стороны программирования. Лучше всего сделать как-то так
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
template <typename T>
void Print(T** arr, const int& rows, const int& columns){
    for(int i = 0; i < rows; ++i){
        for(int j = 0; j < columns; ++j){
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}
template <typename T>
double Multiplication(T** arr, const int& rows, const int& columns){
    double multiplication = 1;
    for(int i = 0; i < rows; ++i){
        for(int j = 0 ; j < columns; ++j){
            if(arr[i][j] > 0){
                multiplication *= arr[i][j];
            }
        }
    }
    return multiplication;
}
template <typename T>
void MinElementsRows(T** arr, const int& rows, const int& columns){
    T* result = new T[rows];
    int index = 0;
    for(int i = 0; i < rows; ++i){
        T min = arr[i][0];
        for(int j = 0; j < columns; ++j){
            if(min > arr[i][j]){
                min = arr[i][j];
            }
        }
        result[index++] = min;
    }
    for(int i = 0; i < rows; ++i){
        cout << result[i] << " ";
    }
    cout << endl;
}
int main()
{
    srand(time(NULL));
    int rows, columns;
    cout << "Введите количество рядков матрицы: ";
    cin >> rows;
    cout << "Введите количество столбцов матрицы: ";
    cin >> columns;
    double** arr = new double* [rows];
    for(int i = 0; i < rows; ++i){
        arr[i] = new double[columns];
        for(int j = 0; j < columns; ++j){
            arr[i][j] = 0.1 * (rand() % 201 - 100);
        }
    }
    Print(arr, rows, columns);
    cout << "Минимальные элементы каждого ряда: " << endl;
    MinElementsRows(arr, rows, columns);
    double multiplication = Multiplication(arr, rows, columns);
    cout << "Произведение положительных элементов равно: " << multiplication << endl;
    return 0;
}
Но если не хотите, то можете просто добавить функцию к своему коду.
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
76
77
78
79
#define _USE_MATH_DEFINES
#include <iostream>
//#include <Windows.h>
#include <cmath>
#include <clocale>
#include <limits.h>
 
//#define M_PI  180
using namespace std;
 
const int N = 10;
const int M = 10;
void display(int* result, int n)
{
    for (int i = 0; i < n; i++)
        cout << result[i] << " ";
    cout<<endl;
}
 
void mini_row(int mat[M][N], int m, int n)
{
    int i = 0, j;
    int min = INT_MAX;
    int result[M];
    while (i < m)
    {
        for (j = 0; j < n; j++)
        {
            if (mat[i][j] < min)
            {
                min = mat[i][j];
            }
        }
        result[i] = min;
        min = INT_MAX;
        i++;
 
    }
    display(result, m);
}
template <typename T>
double Multiplication(T arr[M][N], const int& rows, const int& columns){
    double multiplication = 1;
    for(int i = 0; i < rows; ++i){
        for(int j = 0 ; j < columns; ++j){
            if(arr[i][j] > 0){
                multiplication *= arr[i][j];
            }
        }
    }
    return multiplication;
}
int main()
{
    int i, j;
    int mat1[M][N];
    cout<<"Enter matrix size m n:";
    int m,n;
    cin>>m>>n;
    if(m>M)m=M;
    if(n>N)n=N;
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
            cin >> mat1[i][j];
    }
    cout << "Матрица: " << endl;
    for(int i = 0; i < m; ++i){
        for(int j = 0; j < n; ++j){
            cout << mat1[i][j] << " ";
        }
        cout << endl;
    }
    cout << "Минимальные элементы каждого ряда: " << endl;
    mini_row(mat1, m, n);
    double multiplication = Multiplication(mat1, m, n);
    cout << "Произведение положительных элементов матрицы: " << multiplication << endl;
    return 0;
}
1
25.04.2022, 10:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2022, 10:54
Помогаю со студенческими работами здесь

Найти минимальный элемент матрицы данного размера и произведение всех её положительных элементов
Найти минимальный элемент матрицы данного размера и произведение всех её положительных элементов.

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

Определить произведение всех положительных элементов и сумму всех отрицательных элементов.
Ребят, помогите с задачкой, пожалуйста. Желательно для Borland C++ Builder 6.0. Задан массив L...

Определить произведение всех положительных элементов массива
Сделать массив размером 5x4 с элементами действительного типа (положительные и отрицательные)....

Определить произведение значений всех положительных элементов массива
помогите с программой... Дан массив a0, a1, a2,…, an-1. Определить произведение значений всех его...


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

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