c ++ - 向一个int数组添加新值

时间:2013-03-12 18:44:10

标签: c++ arrays

在下面的代码中,我有一个对象数组 - tArray 我试图找到排名前五的'num shares'的'买家名',
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;
}

1 个答案:

答案 0 :(得分:0)

看起来你正试图找到最大的总数,一次只看一个交易。您需要先为所有买家汇总总计。然后找到5个最高总数是一件简单的事情。