为什么return 5之后还要继续执行 最后结果变成return -1

作者&投稿:祁武 (若有异议请与网页底部的电邮联系)
侠盗猎车手5“return"键是键盘中的哪个~

回车吧

return 多少 对程序都是一样的,而对于开发人员,是 规范而已。
不过习惯上来说,我们一般吧负数 作为 报错的返回信息。
0和1作为正常,偶尔会用到2以上的。
有2种方式报错,一般如果是main函数中我们会使用
cout<<"OOXX报错,报错信息为:……"<<endl;
return -1 ;
其他的 被调用的子函数,我们同样报错,
或者 return -10,(多少都行)
之后在 main函数中判断 调用函数的返回值,根据返回值判断是报什么错,在main函数中 cout<<"OOXX报错,报错信息为:……"<<endl;
如果还不了解欢迎追问。

main()函数是一个程序的入口,不能在程序中调用,return起到暂停作用ptx你的代码我帮你改好了,见下面,有什么不懂,随时来问:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt; &#47;&#47;exit()的头文件void main(){double d;char flag;printf(&quot;输入一个double数:&quot;);scanf(&quot;%lf&quot;,&amp;d);d=d*100;d=d+0.5;d=d&#47;100;   &#47;&#47;去掉d=(int)d;printf(&quot;保留两位小数:%.2lf&#92;n&quot;,d);while(1)&#47;&#47;循环{    printf(&quot;继续输入(Y)  OR   退出输入(N)?&#92;n&quot;);&#47;&#47;这部分代码复用5不能调用main()函数    scanf(&quot;%s&quot;,&amp;flag);    if(flag==&#39;Y&#39;){        printf(&quot;输入一个double数:&quot;);        scanf(&quot;%lf&quot;,&amp;d);        d=d*100;        d=d+0.5;        d=d&#47;100;        printf(&quot;保留两位小数:%.2lf&#92;n&quot;,d);}        else if(flag==&#39;N&#39;){exit(1);}else{printf(&quot;输入错误,请重新输入.&#92;n&quot;);}}} ps: 最好不要用goto循环,以后写程序的时候尽量避免,很容易出错

代码本身有点问题,这应该是折半查询

int ef(int *a,int x,int y,int z) {
    int ave=(x+y)/2;
    if (z==a[ave]) {
        return ave;
    } else if(z>a[ave]) {
        x=ave+1;
        return ef(a,x,y,z);//少了return语句
    } else {
        y=ave-1;
        return ef(a,x,y,z);//少了return语句
    }
    return -1;
}


递归算法的条件分支语句。
如果if (z==a[ave])满足,那么return ave;之后不会继续执行。
你所说的继续执行,应该是进入了递归。

少了return, 在ef里面执行的ef它没有返回,它只是执行到return 5时结束了递归,返回到else{...}里面的,那个里面也没有变量接收,也并没有返回到main中。


漳州市18071714526: 为什么return 5之后还要继续执行 最后结果变成return - 1 -
进伊盐酸: 代码本身有点问题,这应该是折半查询 int ef(int *a,int x,int y,int z) { int ave=(x+y)/2; if (z==a[ave]) { return ave; } else if(z>a[ave]) { x=ave+1; return ef(a,x,y,z);//少了return语句 } else { y=ave-1; return ef(a,x,y,z);//少了return语句 } return -1; }

漳州市18071714526: 请问,C语言中return语句后,还执行后面的语句不? -
进伊盐酸: 不执行关于C语言中return的一些总结 return是C++预定义的语句,它提供了种植函数执行的一种放大.当return语句提供了一个值时,这个值就成为函数的返回值. 说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧...

漳州市18071714526: Python怎么return后让循环继续运行? -
进伊盐酸: return 会直接另函数返回,函数就运行结束了,所有该函数体内的代码都不再执行了,所以该函数体内的循环也不可能再继续运行.如果你需要让循环继续执行,就不能return函数,而应该选用break或者continue. break:跳出所在的当前整个...

漳州市18071714526: 到return 0;那里程序不结束吗?为什么还继续下去啊?为什么这个程序按这样运行输出的最大值不对啊?? -
进伊盐酸: 这个程序本身的算法没什么问题,给你精简一下#include<stdio.h> int max(int x,int y) { return x>y?x:y; } int main() { int max(int x,int y); int a,b; scanf("%d %d",&a,&b); //可能是这里出了问题,最好在连续的输入的地方加上空格或者逗号 //这个是习惯问题,要不然程序不知道怎么截取数据 printf("max=%d\n",max(a,b)); system("pause"); //调用dos的暂停命令比较好,呵呵 } //主函数不需要返回值,要想程序暂停,可以用

漳州市18071714526: java的方法中return是怎么用的?新手急救!谢谢 -
进伊盐酸: return是指一个Java方法要返还的值.一个Java的方法,只要有返回值(也就是说方法里没有void)都要用return来把最后得出的结果返还.比如 static int max(int a,int b){ if(a>b) return a; else return b; } 这个方法比较了两个参数,然后调用return来返还其中一个大的值.在调用max的时候你要这样写: int c=max(a,b); 这样max返还的值就被赋予了c. 简单的来说一个方法就像一部机器,参数是你的输入,而return返还的值就是你要的输出.

漳州市18071714526: 51单片机独立按键部分编程问题 -
进伊盐酸: 你好:程序是这么运行的: 先在心中想象独立按键的结构,没按下时,P3外接上拉电阻,所以输入总是1,按键按下时,倒地,对应按键的IO输入为0. 然后,先置IO为输入,没按下时读出全是1,0xff,当有按键按下时,读入为0了,所以用if(...

漳州市18071714526: java函数里break和return的区别? -
进伊盐酸: return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行. (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致. (3) return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处.break语句的作用 (1)break在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转向循环语句下面的语句. (2)当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体.

漳州市18071714526: C语言中return的用法疑问 -
进伊盐酸: 不要这样理解,return的意思就是返回,只要是函数,都可以用return来退出该函数,不执行剩下的所有代码,举个例子 void fun() { int n = 0; return; // 这里函数fun就返回了,不会再执行后面的n=2,因此函数退出前n的值都为0 n = 2; }

漳州市18071714526: C语言中return怎么用,主函数中一定要用吗? -
进伊盐酸: return,从函数调用执行中返回,可以分两种情况:1、void型 例如:void f2() { int i=1;//return;//这样也可以,不要这一句也可以 }2、非void型 例如:int f1() { int i=1; return 1;//return(i); //这样也可以 } 有时即使被调用函数是void类型 被调函数中的...

漳州市18071714526: return 的用法 -
进伊盐酸: return 就是返回 一个函数除非是void类型的 都要一个返回值 main函数也不例外

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网