这发生在具有循环索引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;
}