我發現難以乘以數組中的所有元素。我正在寫兩個元素數組,然後我將這兩個數組合併爲一個負數數組。後來,我想乘以該合併數組的所有元素。這是我的嘗試:如何將數組中的所有元素相乘
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());' –