我发现难以乘以数组中的所有元素。我正在写两个元素数组,然后我将这两个数组合并为一个负数数组。后来,我想乘以该合并数组的所有元素。这是我的尝试:如何将数组中的所有元素相乘
int mul = 0;
for (i = 0; i < negativecount; ++i)
{
mul = mul * merge[i];
}
cout << mul << endl;
}
而且我得到随机数字作为答案。我该如何解决这个问题?
我发现难以乘以数组中的所有元素。我正在写两个元素数组,然后我将这两个数组合并为一个负数数组。后来,我想乘以该合并数组的所有元素。这是我的尝试:如何将数组中的所有元素相乘
int mul = 0;
for (i = 0; i < negativecount; ++i)
{
mul = mul * merge[i];
}
cout << mul << endl;
}
而且我得到随机数字作为答案。我该如何解决这个问题?
不仅您最初的乘积值必须是1像牧马人说。同样,你的合并数组的价值对于知道你得到的答案很重要。
在这一行好好看看:
mul = mul * merge[i];
你到底在这里试着完成?因为你不是乘数组中的数字,而只是你的乘法因子?因为你的'mul'值最终取决于你的初始值,迭代次数和merge [i]值,它看起来可能是随机的。下面的代码将为您提供的2 MUL值:
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;
}
祝你好运!
当你运行该代码时,你应该得到'0'结果.... – wimh
以'mul = 1'开头.....但是如果你得到的随机数是ans,那可能是因为'i'达到使数组越界的价值。 ... – wrangler
你也可以使用'int mul = std :: accumulate(merge,merge + negativecount,1,multiply());' –