Я пытаюсь создать рекурсивную функцию, содержащую вектор чисел, и имеет ключ, который является числом, которое мы ищем в векторе.Ошибка рекурсивной функции
Каждый раз, когда ключ найден, функция должна отображать счетчик, сколько раз ключ отображается в векторе.
По какой-то причине моя рекурсивная функция возвращает только номер 1 (Игнорируйте 10 я просто тестирование что-то)
Вот мой код:
int recursive_count(const vector<int>& vec, int key, size_t start){
if (start == vec.size())
return true;
return (vec[start] == key? 23 : key)
&& recursive_count(vec, key, (start+1));
}
int main() {
vector <int> coco;
for (int i = 0; i<10; i++) {
coco.push_back(i);
}
cout << coco.size() << endl;
int j = 6;
cout << recursive_count(coco, j, 0) << endl;
}
Что происходит, когда вы пройти через него с помощью отладчика? –
Что вы ожидали от результата? Вы возвращаете логический ответ – amit
Не знаете, что вы пытаетесь сделать, но как есть - ваша функция вернет false (0) тогда и только тогда, когда вход 'key' равен 0, а 0 - в векторе. В противном случае он вернется 1. – amit