我发现很难将数组的所有元素相乘。我正在编写两个元素数组,然后我将这两个数组合并为一个负数数组。后来,我希望将该合并数组的所有元素相乘。这是我的尝试:
int mul = 0;
for (i = 0; i < negativecount; ++i)
{
mul = mul * merge[i];
}
cout << mul << endl;
}
我得到随机数作为答案。我该如何解决这个问题?
答案 0 :(得分:6)
mul
的初始值必须为1.
答案 1 :(得分:-1)
你的初始乘法值不仅像争论者所说的那样是1。此外,合并数组的值对于了解您得到的答案非常重要。
仔细看看这一行:
mul = mul * merge[i];
你到底想要完成什么?因为你没有乘以数组中的数字,而只是你的乘法因子?因为你的'mul'值最终取决于你的起始值,迭代次数和merge [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;
}
祝你好运!