Мне было трудно умножить все мои элементы массива. Я пишу два массива элементов, и после этого я объединяю эти два массива в один массив отрицательных чисел. Позже я хочу умножить все элементы этого объединенного массива. Это моя попытка:
int mul = 0;
for (i = 0; i < negativecount; ++i)
{
mul = mul * merge[i];
}
cout << mul << endl;
}
И я получаю случайные числа в качестве ответа. Как мне исправить эту проблему?
Начальная стоимость mul
должно быть 1.
Мало того, что ваше начальное значение умножения должно быть 1, как сказал Wrangler. Также значение вашего массива слияния важно знать, какой ответ вы получите.
Внимательно посмотрите на эту строку:
mul = mul * merge[i];
Что именно вы пытаетесь сделать здесь? Потому что вы не умножаете числа в массиве, а только ваш коэффициент умножения? Поскольку ваше значение ‘mul’ в конце зависит как от вашего начального значения, количества итераций, так и от значений слияния [i], оно может выглядеть случайным. Следующий код предоставит вам значение mul, равное 2:
int mul = 2;
int negativecount = 10;
int *merge = (int*)malloc(10 * sizeof(int));
for (int i = 0; i < negativecount; ++i)
{
merge[i] = 1;
mul = mul * merge[i];
}
cout << mul << endl;
Но я думаю, что вы хотели бы это:
for (int i = 0; i < negativecount; i++)
{
merge[i] = merge[i] * mul;
}
Удачи!