这发生在具有循环索引i和的两个循环内j。
i表示正在检查的对象j,是包含前五个 numshares 和另一个数组中的关联买家名称的数组。这是作业的一部分,所以我完全受制于这个结构。
tArray: 一个对象数组,包含每个对象的属性numShares并buyerName作为其属性。calcstring: 包含买家姓名calctotal:包含买方姓名的股份数量(numshares)
我正在查找具有最高 numshares 的五个买家的姓名并将它们存储为 1. [0] 到 5. [4]
但是,当逐步执行程序时,我意识到 saynumshares比calctotal[1]迭代要高,而不是将每个元素向下推到数组中并插入numshares
该行calctotal[j+1] = tVar只是替换calctotal[2]而不是calctotal[2]向下移动到calctotal[3]等等
有谁知道我该如何解决这个问题?
我应该再说一遍,我不能使用向量等
if(tArray[i].numShares > calcTotal[j])
{
int tVar = calcTotal[j];
string tStr = calcString[j];
calcTotal[j+1] = tVar;
calcString[j+1] = tStr;
calcTotal[j] = tArray[i].numShares;
calcString[j] = tArray[i].buyerName;
break;
}