0

在下面的代码中,我有一个对象数组 - tArray。
我试图找到总“num 股”、
calctotal 和 calcstring 数组协同工作以存储买方及其总价值的“买方名称”。

但是,我在运行时已经单步执行了代码,并且我的代码本质上是替换循环中小于当前“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;
}
4

1 回答 1

0

似乎您正在尝试一次仅查看 1 笔交易的最大总数。您需要先汇总所有买家的总数。然后找到最高的 5 个总数是一件简单的事情。

于 2013-03-12T18:55:47.687 回答