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

自定义函数部分能不能不使用if-else,直接return?

代码如下:

#include<stdio.h>

//自定义求和函数
int sum(int n)
{
    return ( sum(n-1) + n );
}

int main()
{
    int n=10;
    printf("到第%d天,小明总共记了%d个单词。\n",n,sum(n));
    return 0;
}

从运行的结果看,是不行的,想知道为什么?

正在回答

2 回答

当然不行,,你这里sum(n-1)一直往回溯上去溯不到一个初值啊,递归算法必须要报至能追溯到源头,这里n=1时候就是这个源头,必须要明确。


0 回复 有任何疑惑可以回复我~
#1

sanjiaofeng 提问者

唉,对这个递归还不是很理解!一想就好像陷入了死循环!
2015-07-06 回复 有任何疑惑可以回复我~

我觉得相当于for。条件不足无法跳出递归。


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

自定义函数部分能不能不使用if-else,直接return?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信