例题中 result 的作用是什么?以及为什么要写 return result 而不是 返回factorial?

来源:5-7 递归函数(一)

qq_农f山前有d田_03145774

2016-07-25 09:31

int factorial(int n)

{

int result;

.

.

.

return result;}

写回答 关注

4回答

  • 马蹄疾_
    2016-09-20 22:55:27
    #include <stdio.h>
    int fac(int n)
    {
    	if(n<0)
    	{
    		printf("erorr.");
    	}
    	else if(n==0||n==1)
    	{
    		return 1;	
    	}
    	else 
    	{
    		return fac(n-1)*n;
    	}
    }
    int main()
    {
    	int n=5;
    	printf("%d的阶乘为%d",n,fac(n));
    	return 0;
    }

    这段代码也能运行 result只是利用一个局部变量保存定义函数的值

    马蹄疾_

    在特殊情况下 需要这样一个局部变量 但这里不需要

    2016-09-20 22:56:09

    共 1 条回复 >

  • 听羽
    2016-08-24 21:40:56

    result最终的值是factorial(n-1)*n执行完成后的值

  • 用户5343034835
    2016-07-25 16:32:24

    这里return的功能为返回函数的值

    qq_农f山...

    那 result = factorial(n-1)*n 岂不是要重复执行几次factorial,并且要将每次的结果都 return result? 那么多次将数值返还给result,我们最终需要的是哪次result呢?

    2016-07-25 17:27:35

    共 1 条回复 >

  • hnthzt
    2016-07-25 14:07:10

    返回的是变量的值而不是一个函数,factorial是定义的函数名字

    qq_农f山...

    那 result = factorial(n-1)*n 岂不是要重复执行几次factorial,并且要将每次的结果都 return result? 那么多次将数值返还给result,我们最终需要的是哪次result呢?

    2016-07-25 17:27:09

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题