为了账号安全,请及时绑定邮箱和手机立即绑定

关于递归函数,菜鸟不懂,求大神详细讲解

关于递归函数,菜鸟不懂,求大神详细讲解

C
Alone_shin 2015-08-02 16:57:18
#include <stdio.h>/* 定义获取单词数量的函数 */int getWordNumber(int n){       if(n == 1)    {        return 1;    //第一天只会1个单词    }    else{        return getWordNumber (n-1)+n ;       //到第天会的单词数量    }}int main(){    int num = getWordNumber(10);     //获取会了的单词数量    printf("小明第10天记了:%d个单词。\n", num);    return 0;}
查看完整描述

4 回答

?
Alone_shin

TA贡献5条经验 获得超0个赞

我本来想弄个可以无限输入积分的程序(就是可以只运行一次程序就能从键盘输入输入无限次数据),可是想不出别的循环方法,比如下面的代码:

#include <stdio.h>

float zf(int time,int jl)//time为下班时间,jl为13公里

{

    float money;

    if(time>5 && time<=23)

    {

        money=(jl-3)*2.3+14;

        return money;

    }else

    {

        money=(jl-3)*2.3+(jl-3)*0.46+14;

        return money;


    }

}

int main()

{

    int jl=13;

    int time;

    printf("请输入你的下班时间:");

    LOOP:scanf("%d",&time);

    if(1<=time && time<=24)

    {

        printf("你的费用为%.1f元\n",zf(time,jl));

    }else

    {

        printf("你输入的数据有误请在输一次");

        goto LOOP;

    }


    return 0;

}


查看完整回答
反对 回复 2015-08-05
  • sca11
    sca11
    循环语句有 1.while 2.do while 3.for三种 goto 只是实现跳到定义的标识符处,注意看你goto loop的位置,是在else的{}括号内,只有当if判断条件不成立的时候,才实行else 并goto loop 在你这里只是goto语句只是输入错误的时候才跳回去,关于goto语句 很多人都认为这事代码混乱的源泉,尽量不用 如果想要实现循环,可以如下代码替换 while(scanf("%d",&time)>0) { if(1<=time && time<=24) { printf("你的费用为%.1f元\n",zf(time,jl)); printf("请输入你的下班时间:"); } else { printf("你输入的数据有误请在输一次\n"); printf("请输入你的下班时间:"); } }
?
Alone_shin

TA贡献5条经验 获得超0个赞

好的,谢谢

查看完整回答
反对 回复 2015-08-04
?
sca11

TA贡献2条经验 获得超0个赞

递归代码详解

查看完整回答
反对 回复 2015-08-04
?
sca11

TA贡献2条经验 获得超0个赞

这问题我今天答过两次了,就在这论坛里,自己去搜下吧 ,其中有一问题是  递归详解

查看完整回答
反对 回复 2015-08-04
  • 4 回答
  • 0 关注
  • 1385 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信