Цель - написать функцию, которая ищет в массиве значение.
Если массив содержит значение, вернуть индекс, в котором находится ключ. Если массив не содержит значения, вернуть -1
.
У меня есть функция c ++, которая возвращает индекс переменной массива. Мне нужно объяснение, почему моя часть моего кода (то есть «i ++» в выражении цикла for) помечена как «недоступная» моей IDE
Я попытался отладить код построчно, чтобы посмотреть, смогу ли я понять, почему i ++ недоступен. Я не могу определить, почему. Тем не менее, я подозреваю, что это может быть связано с моим «return» заявлением
int main()
{
const int size = 4;
int array[] = { 345, 75896, 2, 543 };
int searchKey = 543;
std::cout << "Found at: " << search(array, size, searchKey);
return 0;
}
int search(int* array, int size, int searchkey)
{
while (1) {
std::cout << "Enter an Integer to search. Hit -1 to quit.\n";
scanf("%d", &searchkey);
if (searchkey == -1) {
break;
}
for (int i = 0; i < size; i++) {
if (array[i] == searchkey) {
return 1;
}
else {
return -1;
}
}
}
}
Я ожидаю, что функция вернет индекс массива, если в массиве существует searchKey, но он всегда заканчивает тем, что возвращает '-1'