尝试使用伪随机生成器执行搜索以查找值是否在数组中。每次执行时我都会收到以下消息:
helpers.c:46:1: error: control may reach end of non-void function [-Werror,-Wreturn-type]
我做错了什么?
bool search (int value, int values[], int n)
{
if (n > 0)
{
for (int i = 0; i < n; i++)
{
if (value == values[i])
return true;
else
return false;
}
}
else
return false;
}
最佳答案
你的逻辑似乎是错误的。更改
for (int i = 0; i < n; i++)
{
if (value == values[i])
return true;
else
return false;
}
至
for (int i = 0; i < n; i++)
{
if (value == values[i])
return true;
}
return false;
否则,循环不会执行多次。
错误消息告诉您,如果 if (n > 0)
为 true 并且 for (int i = 0; i < n; i++)
中的条件是 false,那么您不会返回 bool
(编译器不够智能,无法知道这不会发生)
关于c - 不确定 'control may reach end of non-void function' 错误消息的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30114874/