问答详情
源自:5-7 递归函数(一)

最后(10)这里代表什么意思,换了好像也没有什么区别

#include <stdio.h>
/* 定义获取单词数量的函数 */
int getWordNumber(int n)
{  
    if(n == 1)
    {
        return 1;    //第一天只会1个单词
    }
    else{
        return n<11?getWordNumber(n-1)+n:getWordNumber(10) ;       //到第天会的单词数量
    }
}
int main()
{
    int num = getWordNumber(10);     //获取会了的单词数量
    printf("小明第10天记了:%d个单词。\n", num);
    return 0;
}

提问者:我只有一件白T恤 2016-11-26 15:55

个回答

  • 落叶伤剑
    2016-11-27 10:08:57
    已采纳

    我自己的理解是:

    1. 换了的确没有什么区别  C语言的设计就是从上到下推  但是大多数情况都是已经知道结果怎样了  然后开始编程  所以另外一个选项无论写什么  你自己心里都清楚  他都不会去实现  因为10<11 早就知道

    2. 写成getWordNumber(10)这样  我个人的理解是小明只学习10天  超过了10天  即使n=16啊等等  他也只记前10天的单词内容  超过10天后  他就不学习啦

    3. 其实我觉得写成 return  getWordNumber(n-1)+n; 就可以了  为何要多此一举呢?