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

Почему произведение всегда равно 0? - C++

Восстановить пароль Регистрация
 
FIN7
 Аватар для FIN7
2 / 2 / 0
Регистрация: 09.02.2013
Сообщений: 168
07.03.2014, 22:41     Почему произведение всегда равно 0? #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
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(0));
    const int n = 3, m = 5;
    int a[n][m];
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<m; j++)
        {
            a[i][j] = rand() % 10;
        }
    }
 
    int proiz = 0;
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<m; j++)
        {
            proiz *= a[i][j];
            cout << a[i][j] << " ";
        }
    }
    cout << " | Произведение всех елементов массива = " << proiz << "\n";
 
    system("pause");
    return 0;
}
вот написал произведение всех елементов массива, а оно всегда выдает 0, не очень понимаю почему и как исправить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
recoder
 Аватар для recoder
129 / 129 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
07.03.2014, 22:44     Почему произведение всегда равно 0? #2
На ноль умножаете ведь, инициализируйте proiz = 1
ну и random попадается 0
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
07.03.2014, 22:44     Почему произведение всегда равно 0? #3
потому что снчала число равно 0, а при умножения любого числа на 0 Вы получаете 0
pihta
1 / 1 / 0
Регистрация: 11.11.2012
Сообщений: 23
07.03.2014, 22:44     Почему произведение всегда равно 0? #4
скорее всего из-за, того что вы инициализируете переменную proiz нулём, а надо единицей
recoder
 Аватар для recoder
129 / 129 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
07.03.2014, 22:49     Почему произведение всегда равно 0? #5
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
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(0));
    const int n = 3, m = 5;
    int proiz = 1;
    int a[n][m];
 
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<m; j++)
        {
            a[i][j] = rand() % 10;
        }
    }
 
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<m; j++)
        {
            if (a[i][j] == 0) continue;
            proiz *= a[i][j];
            cout << proiz << endl;
            cout << a[i][j] << " ";
        }
    }
 
    cout << " | Произведение всех елементов массива = " << proiz << "\n";
 
    system("pause");
    return 0;
}
Donnerwetter
40 / 40 / 12
Регистрация: 04.02.2014
Сообщений: 144
07.03.2014, 22:53     Почему произведение всегда равно 0? #6
тут даже не программирование, а чистая арифметика; Вы же на ноль умножаете
Yandex
Объявления
07.03.2014, 22:53     Почему произведение всегда равно 0?
Ответ Создать тему
Опции темы

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