return 1是什么意思?

#include<stdio.h>longfun(intn){if(n>1)return(n*fun(n-1));return1;}main(){printf("10!=... #include<stdio.h>
long fun(int n)
{
if(n>1)
return (n*fun(n-1));
return 1;
}
main()
{
printf("10!=%1d\n",fun(10));
}

这里的return 1是什么意思?

坐等。。谢谢各位了。。
能纤细的说下么。。
如果求的是10!
n>1,什么时候结束叠乘?
如果按一楼,是不是就是相当于else return 1?
展开
 我来答
lionkind117
推荐于2017-12-16 · TA获得超过1075个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:185万
展开全部
if(n>1)
return (n*fun(n-1));
是一个 if 语句。很明显,如果 n 大于 1,则 执行 return (n*fun(n-1)); 否则就执行下面的语句。

因为 main 函数里调用的是 fun(10); 所以对于 fun 函数,入口参数 n 等于10;10 大于 1,所以执行 return (n*fun(n-1)); 又调用了 fun(9)。。。

就这样一直调用到 fun(1); 此时 n > 1 不成立,所以不执行
return (n*fun(n-1));
而是执行下一句 return 1; 这样就返回到上一层 fun(2) 的return语句处,即
return ( 2 * fun( 1 ) ); fun(2) 继续向上返回,直到 fun(10);
**********************************************************************

多一句嘴,从代码风格看,我猜你大概看的是谭浩强的书吧。老谭的书过时了,内容已经非常陈旧了。劝你不要看了。

main() 这种形式过时了,现在应该写成
int main(void)
{
return 0;
}
这种形式。

而且main 函数之前还要写 函数原型。

推荐你用 C Primer Plus 入门,网上有中文版pdf。你可以和谭浩强的书对照着看,看看哪本书好。我认为比老谭的书强多了。
kirayamato201
2010-02-15 · TA获得超过365个赞
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:272万
展开全部
这是一个递归,那个return 1是相当于else return 1;
当递归到1的时候程序就变成了10的阶乘这是函数也结束
返回的值就变成了10!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喻倩郸梦寒
2019-07-14 · TA获得超过3798个赞
知道大有可为答主
回答量:3074
采纳率:35%
帮助的人:231万
展开全部
没什么意思,就是函数结束后,返回个-1,经常用于错误返回。如:
int
func_a(int
test)
{
if(test==0)
{
return0;
}
else
return
-1;
}
void
main()
{
int
temp=1;
if(func_a(temp))
printf("test=0");
else
printf("test!=0");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alltoy
2010-02-15 · 超过16用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:56.1万
展开全部
如果n<=1
函数fun()的值就是1
return后面的值就是函数的出口
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2021-01-12 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.3亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式