在我的代碼中,我有一個對象數組 - tArray。
我試圖找到擁有前五名總數'份額'的'買家名稱',
calctotal和計算字符串數組協同工作以存儲買家及其總價值。C++ - 爲一個整數數組添加新值
但是,我在運行時逐步完成了代碼,我的代碼基本上替換了循環中當前'numshares'的較小值。這意味着,即使剛剛被替換的買家再次出現,他的總額也開始增加,並且不會被添加,這是我想要的。
我該如何更改此代碼,以便發現較大的值時,較小的值會進一步向下推入數組中而不會被替換?
謝謝 - 我必須解決這個問題(任務)的'格式',所以實現功能是目標,所以我可以進步。
所以,本質上是if語句是問題的第二在於:
for (int i = 0; i<nTransactions; i++)
{
//compares with arrays
for(int j =0; j<sSize; j++)
{
if(tArray[i].buyerName == calcString[j])
{
calcTotal[j] += tArray[i].numShares;
break;
}
else{
//checks if shares is great then current total then replaces
if(tArray[i].numShares > calcTotal[j])
{
calcTotal[j] = tArray[i].numShares;
calcString[j] = tArray[i].buyerName;
break;
}
}
}
}
return calcString;
}
「我將如何更改此代碼,以便在發現較大的值時將較小的值向下推入陣列並且不會被替換?」這聽起來像你在排序數組。這真的是你想要做什麼,或者你是否試圖根據一些標準簡單地搜索數組? – 2013-03-12 18:55:08
是的,基本上是作爲一個新的更大的價值被發現說第二個循環的第三個迭代我需要而不是剛剛寫過目前的值,我需要它插入。希望這會有所幫助 – user2075995 2013-03-12 18:56:56
如果您正在進行搜索,我建議您僅將「迄今爲止發現的最大」作爲單獨變量進行跟蹤,可能只是對arrray的索引。 – 2013-03-12 18:59:04