control may reach end of non void function

int find(int num[])
{
for(int i=1;i<10;i++)
{
if(num[i]!=0)
{
return i;
break;
}
}
}
想返回i值,但是总是提示control may reach end of non void function怎么解决呢?

数组作为形参时,一般还要有一个长度为形参。

 int find(int num[],int n)
{
    for(int i=0;i<n;i++)
    {
        if(num[i]!=0)
        {
            return i;
            //break;  没用,删掉
        }
    }
}

错误举例

if语句可能不会执行, 所以可能回没有返回值
解决方案如下

......
答案就在这里:Control may reach end of non-void function
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

你试试,如果还有错误,就把代码都贴出来。也许不是这个函数的错误。

  int find(int num[],int n)
{
    for(int i=0;i<n;i++)
    {
        if(num[i]!=0)
        {
            return i;
            //break;  没用,删掉
        }
    }
        return i; //这少一个返回值。
}

你试试,如果还有错误,就把代码都贴出来。也许不是这个函数的错误。

  int find(int num[],int n)
{
    for(int i=0;i<n;i++)
    {
        if(num[i]!=0)
        {
            return i;
            //break;  没用,删掉
        }
    }
        return i; //这少一个返回值。
}