尝试使用伪随机生成器执行搜索,以查找值是否在数组中。每次执行时我都会收到以下消息:
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;
}
答案 0 :(得分:1)
你的逻辑似乎是错误的。改变
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)
为真且for (int i = 0; i < n; i++)
中的条件为假,则您不会返回bool
(编译器不是&#39;足够聪明,知道这不会发生)
答案 1 :(得分:0)
有一种情况是你没有进入for循环..那么就不会返回任何值。你应该在for循环之后或函数结束时返回一些东西