标题:[求助]为什么这个程序没有循环语句却能循环啊?
只看楼主
kaid
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-12-25
 问题点数:0 回复次数:5 
[求助]为什么这个程序没有循环语句却能循环啊?
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int sum,n;
scanf("%d",&n);
sum=fun(n);
printf("sum=%d\n",sum);

}
int fun(int n)
{
int s;
if(n==1)aiy
s=1;
else
s=fun(n-1)+n;
return s;
}

这个程序的作用是把输入一个值N,求N以前的所有正整数的和。红色部分是调用的函数,这里我有个疑问,为什么调用函数里没有循环语句却能够循环呢?譬如我输入N值为6,所以s=fun(5)+6=fun(4)+5+6=...=fun(1)+....+5+6=1+...+5+6这种情况通常是我在使用了for或者while语句才能实现的啊,为什么这里没有循环语句却能够循环呢?我问过了一下同学他又说不是循环,真是晕啊~~
搜索更多相关主题的帖子: 语句 fun sum int 
2007-01-13 21:57
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
得分:0 
递归

这个社会太复杂。。。
2007-01-13 22:40
kaid
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-12-25
得分:0 

我查了一下资料,
循环:判断条件->执行循环体语句
递归【直接递归】:一个函数在它的函数体内调用它自身。

可是还是不是太明白,能够说说两者的异同吗?

2007-01-14 08:47
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
得分:0 
这个不太好讲。。。查查书吧。。。书 上有详尽的说明

这个社会太复杂。。。
2007-01-14 09:18
kaid
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-12-25
得分:0 
晕~~就是因为书本的内容不详尽......
算了,我去google搜索看看吧~~
2007-01-14 11:10
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:0 
看一下书吧。递归函数的调用 。

~~我的明天我知道~~
2007-01-14 11:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-115847-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.162260 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved