0
나는 int 값의 1 차원 배열과 정수 값의 두 매개 변수를 전달하는 함수를 작성한다고 가정합니다. 이 함수는 두 번째 매개 변수에 가장 가까운 값을 배열에서 찾습니다. 내 코드는 작동하지만 숫자 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;
}
아 나는 뭔가를 간과하고 있다는 것을 알았습니다. 도와 주셔서 감사합니다! – Nick
@Nick 디버거 (또는'printf' 또는'cout' 문 사용)로 진단하기가 꽤 쉽습니다. 또한 코드를 쳐다 보는 것보다 훨씬 실망 스럽습니다. – sfstewman