c++实现计算一组数中的最大值与次大值:
输入参数为一个int类型的vector:std::vector<int> vecNum;(数值均大于0)
输出 最大值和次大值存储在vecNumTwo中。
vecNum.push_back(3);vecNum.push_back(1);
vecNum.push_back(5);vecNum.push_back(9);
vecNum.push_back(6);vecNum.push_back(4);
float maxNum = 0.0, maxNumScd = 0.0;
int maxNumIdx = -1, maxNumIdxScd = -1;
vecNumTwo.clear();
for (unsigned int i = 0; i < vecNum.size(); i++)
{
int tmp = vecNum[i];
if ( tmp > maxNum)
{
maxNumScd = maxNum;
maxNumIdxScd = maxNumIdx;
maxNum = tmp;
maxNumIdx = i;
}
else if (tmp > maxNumScd)
{
maxNumScd = tmp;
maxNumIdxScd = i;
}
}
if(maxNumIdx!=-1)
vecNumTwo.push_back(vecNum[maxNumIdx]);
if (maxNumIdxScd != -1)
vecNumTwo.push_back(vecNum[maxNumIdxScd]);