uj5u.com熱心網友回復:
#include <iostream>
#include <vector>
void FindNearestNumber(std::vector<int> &vecNearestPos, const std::vector<int> &vecSourse)
{
vecNearestPos.clear();
size_t nSize = vecSourse.size();
if (nSize > 1)
{
vecNearestPos = { 0, 1 };
int nDis = fabs(vecSourse[0] - vecSourse[1]);
for (size_t i = 0; i < nSize - 1; i++)
{
for (size_t j = i + 1; j < nSize; j++)
{
if (fabs(vecSourse[i] - vecSourse[j]) < nDis)
{
vecNearestPos[0] = i;
vecNearestPos[1] = j;
nDis = fabs(vecSourse[i] - vecSourse[j]);
}
}
}
}
}
int main()
{
std::vector<int> vecTest = { 66, 83, 31, 16, 22, 79 };
std::vector<int> vecPos;
FindNearestNumber(vecPos, vecTest);
if (2 == vecPos.size())
{
std::cout << "第" << vecPos[0] + 1 << "和第" << vecPos[1] + 1 << "個數最接近,分別是:" << vecTest[vecPos[0]] << "," << vecTest[vecPos[1]] << std::endl;
}
else
{
std::cout << "沒有找到符合要求的數" << std::endl;
}
system("pause");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/211476.html
標籤:新手樂園
