You are getting this error because if your for
loop breaks due to breaking condition i < n;
then it don’t find any return
statement after for
loop (see the below, I mentioned in code as comment).
for (int i = 0; i < n; i++){ if (values[i] == value){ return true; break; } else{ return false; } } // here you should add either return true or false }
If for
loop break due to i >= n
then control comes to the position where I commented and there is no return
statement present. Hence you are getting an error “reach end of non-void function in C”.
Additionally, remove break
after return
statement. if return
executes then break never get chance to execute and break loop.
return true; -- it returns from here. break; -- " remove it it can't executes after return "
Check your compiler should give you a warning – ‘unreachable code’.