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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
FIN7
2 / 2 / 0
Регистрация: 09.02.2013
Сообщений: 174
#1

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

07.03.2014, 22:41. Просмотров 304. Ответов 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
#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, не очень понимаю почему и как исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2014, 22:41     Почему произведение всегда равно 0?
Посмотрите здесь:

Почему рандомное число всегда равно 22? - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main () { // нужны две константы (Ширины и высоты поля) ...

Элементарный математический код, но почему то всегда равно 0,0000 - C++
Элементарный математический код, но почему то всегда равно 0,0000. Тут я еще использую старые функции ввода-вывода, потому что так надо на...

Почему всегда 1 ? - C++
В общем было задание написать функцию по переводу из лет в месяца: #include &lt;iostream&gt; using namespace std; int years(int); int...

Почему выводит всегда 0? - C++
Почему при любом значении k выводится 0? #include &lt;iostream&gt; using namespace std; void main() { double k, j, i; ...

Почему равно нулю? - C++
Здравствуйте!У меня проблемы с кодом!Оно всегда равняется нулю,а должно к числу.Помогите пожалуйста;) #include &lt;iostream&gt; #include...

Почему функция всегда возвращает 0? - C++
bool trie_tree::consonants_check(char letter) { return tolower(letter) == ('w' || 'r' || 't' || 'p' || 's' || 'd' || 'f' || 'g' || 'h'...

Почему всегда выполняется условие? - C++
Здравствуйте, имеется код int main(int argc,char *argv) { clrscr(); if(argv != &quot;aaa&quot;) { printf(&quot;Error 2&quot;); ...

Почему массив всегда инициализирован нулями? - C++
Не могу понять, почему у меня массив всегда инициализирован нулями в методе check_ending. Есть у меня класс Player в заголовочном...

Почему-то всегда выдаёт неверный ввод - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string.h&gt; using namespace std; int main() { int cancel_program; ...

Почему случайные значения всегда одни и те же? - C++
Дано условие: С помощью генератора случайных чисел смоделировать выбрасывание игральной кости (1 ... 6). Вывести на экран количество...

Почему 100/102 равно нулю? - C++
Когда на С++ считаю 100/102 с использованием флоат и дубль, он мне выдает 0, хотя это делает 0,9803921568627451. Использовал лонг ,но...

Почему sizeof массива char равно 4? - C++
Почему sizeof ch3 равно 4? #include &lt;iostream&gt; #include &lt;cstring&gt; int main() { char ch1 = &quot;Cpp&quot;; char ch2 = {'C',...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
07.03.2014, 22:44     Почему произведение всегда равно 0? #2
На ноль умножаете ведь, инициализируйте proiz = 1
ну и random попадается 0
aLarman
641 / 562 / 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
130 / 130 / 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?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru