c语言-control may reach end of non void function

问题描述

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

解决方案三:

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

  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; //这少一个返回值。
}
时间: 2024-11-03 21:17:58

c语言-control may reach end of non void function的相关文章

c语言-俄罗斯方块C语言 12列改为10列后出错,新人求助!

问题描述 俄罗斯方块C语言 12列改为10列后出错,新人求助! #include #include #include #include #include #include #ifdef _MSC_VER // M$的编译器要给予特殊照顾 #if _MSC_VER <= 1200 // VC6及以下版本 #error 你是不是还在用VC6?! #else // VC6以上版本 #if _MSC_VER >= 1600 // 据说VC10及以上版本有stdint.h了 #include #else

ASP.NET中以后台消息+前台消息+页面自动绑定的方式实现多语言

一 前言 界面支持多种语言,在使用ASP.NET自带的多语言方案时遇到下列问题: 在做管理类的功能时,有添加.修改和查看页面,需要支持多语言的控件基本相同,但要维护多处,产生 冗余(ASP.NET有共享的资源,但它是全局的,不能分 模 块,我们不能所模块的信息入在全局资源中): 在页面中必须要指定资源文件中的KEY: 当页面慢来慢多时,页面与资源的匹配实在难以维护: 所以我认为一个理想的支持多语言框架,需要有以下特性: 分模块解决数据冗余问题: 自动匹配页面与资源文件之间的联系: 易于维护,能通

C语言之声明的语法

概述 在很多情况下,尤其是读别人所写代码的时候,对C语言声明的理解能力变得非常重要,而C语言本身的凝练简约也使得C语言的声明常常会令人感到非常困惑,因此,在这里我用一篇的内容来集中阐述一下这个问题. 问题:声明与函数 有一段程序存储在起始地址为0的一段内存上,如果我们想要调用这段程序,请问该如何去做? 答案 答案是(*(void (*)( ) )0)( ).看起来确实令人头大,那好,让我们知难而上,从两个不同的途径来详细分析这个问题. 答案分析:从尾到头 首先,最基本的函数声明:void fun

C++:最强大的.NET语言之可访问性

CLR定义了一些用于访问存取的修饰成分,其作用超越了本地C++中类成员函数与变量的对等物(如:public.private.protected),不仅如此,甚至还能定义命名空间或嵌套类型的可访问性.为了让C++/CLI达到作为低级语言的目标,除访问性之外,它还提供了比其他CLR平台高级语言更多的控制. 本地C++可访问性与CLR中定义的可访问性相比,其最大不同之处在于:本地C++访问指示符通常用于限制同一程序中从其他代码访问类成员:而CLR定义的类型和成员的可访问性,不只是针对同一程序集中的其他

课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以&amp;amp;#39;\0&amp;amp;#39;结尾。

问题描述 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 解决方案 void foo(char * s) { if (!s) return; foo(s + 1); printf("%c", *s); } 解决方案二: void function(char *p) { if(*p=='/0') return ; function(p+1); printf("%c&q

gettext库 多语言国际化2

通常人们写程序时都是将文字写死在程序里的,比如:echo "Hello World!"; ,假如要改成它国语言,写国际化程序,就要逐个打开进行修改,程序较短时还行,若程序有上万甚至更多,改起来就不是那么容易了.近来随着i18n的逐渐标准化,我也来讲一讲在PHP中如何实现国际化支持.跟其他程序语言一样,在 PHP 也可以利用 gettext套件写作 i18n 程序,实现 NLS(Native Language Support) 国际化支持.   实现流程:程序设计者在程序码中写入所要显示

c语言赋值的问题,看过来

问题描述 c语言赋值的问题,看过来 void additem(int coffint expNode* pol){ struct node* p; if(pol==NULL) { pol=(polynomial)malloc(sizeof(Node)); pol->next=NULL; p=pol; } else p=addnode(pol); p->data.cofficient=coff; p->data.exponent=exp; }Node* addnode(Node* pol)

c语言-关于C语言排序起泡算法的问题

问题描述 关于C语言排序起泡算法的问题 #include void main() { int a, b, c, d; int x[9]; for (a = 1; a<=10;a++) { scanf_s("%d", &x[a]); } for (b = 1; b<=100; b++) { for (c = 0; c < 10-a; c++) { if (x[c+1] < x[c]) { d = x[c]; x[c] = x[c+1]; x[c+1] =

c语言指针数组 字符串-C语言指针数组查找问题

问题描述 C语言指针数组查找问题 #include#includevoid main(){ void input(char name[]int n); void sort(char *name[]int n); void print(char *name[]int n); void search(char *name[]int n); char *name[4]; int n=4; input(namen); sort(namen); print(namen); search(namen);}v