我应该编写一个传递两个参数的函数:一个 int 值的一维数组和一个整数值。该函数在数组中查找与第二个参数值最接近的值。我的代码有效,但当我输入数字 1-5 时,我的输出为 0。当我输入大于 5 的数字时,我开始得到准确的结果。我不太清楚为什么会发生这种情况,但这是我到目前为止的代码:
#include <iostream>
#include <cmath>
using namespace std;
const int MAX = 5;
int searchNearest(int anArray[],int key)
{
int value = abs(key - anArray[0]);
int num = 0;
for(int x = 0;x < MAX; x++)
{
if(value > abs(key - anArray[x]))
{
value = abs(key - anArray[x]);
num = anArray[x];
}
}
return num;
}
int main()
{
int A[MAX] = {3,7,12,8,10};
int search;
int nearest;
cout << "Enter a number to search: ";
cin >> search;
nearest = searchNearest(A,search);
cout << "The nearest number is: " << nearest << endl;
system("pause");
return 0;
}