Вы всегда выходите из функции поиска после первого индекса, 0;
потому что при 0 он либо будет идентичен и вернет i, либо нет и вернет -1.
Я предполагаю, что он возвращает 0 вместо -1, если вы дадите n
как v[0]
.
Измените это так:
for(i=0;i<s;++i)
{
if(v[i]==n)
return i;
}
return -1;
Вы получаете предупреждение, которое вы упоминаете в комментарии («управление достигает конца недействительной функции»), потому что в самом конце вашей функции нет return
. Это, конечно, было бы недоступно, но предупреждение могло быть подсказкой для поиска проблемы.