Je suis supposé écrire une fonction qui est passée deux paramètres: un tableau unidimensionnel de valeurs int, et une valeur entière. La fonction trouve la valeur dans le tableau la plus proche du second paramètre. Mon code fonctionne mais pas quand j'entre les nombres 1-5 ma sortie est 0. Quand j'entre des nombres au-dessus de 5 alors je commence à obtenir des résultats précis. Je ne suis pas trop sûr pourquoi cela arrive, mais voici mon code jusqu'à présent:Valeur la plus proche dans un tableau
#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;
}
Ahh Je savais que j'étais en train de négliger quelque chose. Merci pour l'aide! – Nick
@Nick C'est quelque chose qui est assez facile à diagnostiquer avec un débogueur (ou en utilisant des instructions 'printf' ou' cout'). C'est aussi beaucoup moins frustrant que de regarder le code. – sfstewman