OK, поэтому для моей домашней работы мне нужно создать массив с 5 случайными значениями, попросить пользователя для поиска номера, а затем вернуть индекс искомого номера. Все это легко (или, по крайней мере, сделало это), но теперь, если номер, который вводит пользователь, не существует в массиве, тогда я должен все же вернуть ближайший к нему.C++ Ближайший поиск массива
Пример 1:
Int iArr[SIZE] = {45, 38, 198, 36, 781};
Int iSearchTarget = 199;
Возвращается индекс = 2 (индекс 198)
Пример 2:
Int iArr[SIZE] = {45, 38, 198, 36,781};
Int iSearchTarget = 37;
Возвращается индекс = 1 (индекс 38)
... вот как выглядит моя функция, мне просто нужна помощь в том, как вы можете найти «Ближайший», а не возвращать -1.
int searchList(const int list[], int numElems, int value)
{
int index = 0;
int position = -1;
bool found = false;
while (index < numElems && !found)
{
if (list[index] == value)
{
found = true;
position = index;
cout << "The index of the number you searched for is "<< position << endl;
}
index++;
}
if (position == -1) {
cout<<"Search not found" << position<<endl;
}
return position;
}
Это сайт вопросов и ответов. Это не вопрос. Кроме того, вы можете найти того, кто просто напишет код для вас, но это не то, о чем этот сайт. –
Я уже написал всю программу, мне просто нужна помощь в том, как вы найдете ближайший номер к тому, что находится внутри массива. @JonathanWood –
Подумайте, как сортировка массива может вам помочь – ZivS