以下の私のコードでは、オブジェクトの配列 - tArray があります。
上位 5 つの合計「num シェア」、calctotal、および calcstring 配列を持つ「買い手の名前」を見つけようとしてい
ます。これは、買い手とその合計値を格納するために連携して機能します。
ただし、実行時にコードをステップ実行すると、コードは基本的にループ内の現在の「numshares」よりも小さい値を置き換えています。これは、交換されたばかりのバイヤーが再び現れたとしても、彼の合計が新しく開始され、追加されないことを意味します。これは私が望むことです.
このコードをどのように変更すれば、より大きな値が見つかったときに、より小さな値が配列にプッシュされ、置き換えられないようになりますか?
ありがとう - 私は問題を解決するこの「形式」(割り当て)に縛られているので、機能を達成することが目標であるため、進歩することができます。
したがって、本質的に 2 番目の 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;
}