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

函数调用问题


#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;

改变了getWordNumber 的函数的计算语句为什么就不行了

改为 getWordNumber (n+1)*n/2


提问者:慕码人3568966 2018-04-16 13:10

个回答

  • 宅杏杏子
    2018-06-02 16:18:48

    n一直在增加,你没有设置终止条件(题目中给的终止条件是当n=1时返回1结束),循环一直执行(即死循环)。

  • wvivw
    2018-04-16 17:03:25

    getWordNumber (n+1)*n/2 

    括号里面  n+1  这递归是个死循环~   永远跳不出来   在括号里面用  n-1