Форум программистов, компьютерный форум CyberForum.ru

Сумма произведений элементов каждой строки массива - C++

Восстановить пароль Регистрация
 
DonRiN
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 10
08.01.2016, 08:06     Сумма произведений элементов каждой строки массива #1
Нужно найти сумму произведений элементов каждой строки массива.
Помогите дописать, пожалуйста.
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
    srand(time(0));
 
    int n, m;
    do
    {
        cout << "Строк: ";
        cin >> n;
    } while (n <= 0 || n>20);
    do
    {
        cout << "Столбцов: ";
        cin >> m;
    } while (m <= 0 || m>20);
    int a[20][20];
    int i, j;
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            a[i][j] = rand() % 20 - 10;
            cout.width(4);
            cout << a[i][j];
        }
        cout << endl;
    }
    for (i = 0; i<n; i++)
    {
        long pr = 1;
        for (j = 0; j<m; j++)
        {
            if (a[i][j] == 0)
            {
                cout << "Обнаружен 0\n";
                continue;
            }
            if (a[i][j]) pr *= a[i][j];
        }
        if (pr != 1) cout << "Произведение элементов " << i + 1 << " строки = " << pr << "\n";
    }
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2016, 08:06     Сумма произведений элементов каждой строки массива
Посмотрите здесь:

C++ сформировать массив из произведений элементов каждой строки
Вывести адреса первого и последнего элементов каждой строки массива. C++
Найти сумму элементов массива каждой строки, лежащих в диапазоне от А до В (ввод с клавиатуры) C++
C++ Найти среднеквадратичное значение положительных элементов каждой строки массива
Найти среднее арифметическое элементов для каждой строки заданного двухмерного массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
08.01.2016, 08:26     Сумма произведений элементов каждой строки массива #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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <iostream>
#include <clocale>
#include <cstdlib>
#include <ctime>
//
// Создание матрицы
//
int ** Create( size_t n, size_t m ) {
    int ** M = new int * [n];
    for ( size_t i = 0; i < n; ++i ) {
        M[i] = new int [m];
    }
    return M;
}
//
// Удаление матрицы
//
void Free( int ** M, size_t n ) {
    for ( size_t i = 0; i < n; ++i ) {
        delete [] M[i];
    }
    delete [] M;
}
//
//---- ввод матрицы--------------------------------------
//
void Input( int ** M, size_t n, size_t m ) {
    for ( size_t i = 0; i < n; ++i ) {
        for ( size_t j = 0; j < m; ++j ) {
            std::cout << "M[" << i << "][" << j << "] = ";
            std::cin >> M[i][j];
        }
    }
}
//
// заполнение матрицы случайными числами из диапазона [0, 99] -----------
//
void FillRandomNumbers(int **matrix, const size_t rows, const size_t columns)
{
    srand((unsigned int)time(0)); // инициализируем ПГСЧ
 
    for (size_t row=0; row < rows; row++)
        for (size_t column=0; column < columns; column++)
            matrix[row][column] = rand() % 100; // присваиваем СЧ
}
//
//-------- Печать матрицы ------------------------------------------------
//
void Print( int ** M, size_t n, size_t m ) {
    for ( size_t i = 0; i < n; ++i ) {
        for ( size_t j = 0; j < m; ++j ) {
            std::cout<<M[i][j]<<' ';
        }
        std::cout<<std::endl;
    }
}
//
// пример обработки матрицы -  сумму произведений элементов каждой строки массива
//
int Process( int ** M, size_t n, size_t m ) {
    int Sum=0;
    for ( size_t i = 0; i < n; ++i ) {
        int P = 1;
        for ( size_t j = 0; j < m; ++j ) {
            P *= M[i][j];
        }
        Sum+=P;
    }
    return Sum;
}
 
// ...
// сюда вставить все дополнительные функции которые напишете
// ...
 
int main()
{
    //setlocale( LC_ALL, "Rus" ); // установление русской локали (windows)
 
    size_t n, m;
 
    // вводим размерность матрицы
    std::cout << "Введите количество строк матрицы: ";
    std::cin >> n;
    std::cout << "Введите количество столбцов матрицы: ";
    std::cin >> m;
 
    // выделяем память под матрицу
    int ** A = Create( n, m );
 
    // ввод матрицы
    //Input( A, n, m );
    // заполнение случайными числами (вместо ввода)
    FillRandomNumbers(A,n,m);
 
    // Вывод матрицы
    Print(A,n,m);
 
    // обработка матрицы
    int S;
    S=Process( A, S, n, m );
 
    // вывод результата
    std::cout<< S <<std::endl;
 
    // Вывод матрицы
    //Print(A,n,m);
 
    // освобождаем память, выделенную под матрицу и вектор
    delete[] S;
    Free( A, n );
 
    // ждём нажатия клавиши перед выходом из приложения (windows)
    //system( "pause" );
 
    return 0;
}
DonRiN
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 10
08.01.2016, 08:39  [ТС]     Сумма произведений элементов каждой строки массива #3
Цитата Сообщение от zss Посмотреть сообщение
Что-то Вы так и не освоили методику копирования и вставки текста!
По всей видимости, я весьма невнимателен, и боюсь, что программирование дается мне с трудом.
Весьма признателен за ваш код, но, к сожалению, мне нужно дописать именно тот код, который был указан мной ранее.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
08.01.2016, 09:13     Сумма произведений элементов каждой строки массива #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от DonRiN Посмотреть сообщение
дописать именно тот код
Вам осталось только просуммировать полученные p так, как написано в моем примере
C++
1
2
3
4
5
6
7
8
int Sum=0;
    for ( size_t i = 0; i < n; ++i ) {
        int P = 1;
        for ( size_t j = 0; j < m; ++j ) {
            P *= M[i][j];
        }
        Sum+=P;
    }
DonRiN
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 10
08.01.2016, 09:45  [ТС]     Сумма произведений элементов каждой строки массива #5
Цитата Сообщение от zss Посмотреть сообщение
Вам осталось только просуммировать полученные p так, как написано в моем примере
Весьма благодарен за ваше терпение, все работает.
Yandex
Объявления
08.01.2016, 09:45     Сумма произведений элементов каждой строки массива
Ответ Создать тему
Опции темы

Текущее время: 10:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru