c语言 函数递归调用的简单例子

要完整的程序,有题目,有结果。~~~~~多谢!!!!... 要完整的程序,有题目,有结果。 ~~~~~多谢!!!! 展开
 我来答
White_MouseYBZ
2015-09-28 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6488万
展开全部

举一个用递归调用函数求输入非负整数的阶乘的例子,如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int fact(int n){
    if(n==1 || n==0) return 1;
    else return n*fact(n-1);
}
int main(void){
    int x;
    while(1){
        printf("Input x(int 12>=x>=0)...\nx=");
        if(scanf("%d",&x),x>=0 && x<=12)//x>12时会使结果溢出
            break;
        printf("Error,redo: ");
    }
    printf("%d! = %d\n",x,fact(x));
    return 0;
}
qqbuby163
2012-06-29 · TA获得超过224个赞
知道小有建树答主
回答量:249
采纳率:100%
帮助的人:105万
展开全部
=#include <stdio.h>

/// 求阶乘函数
/// 递归思想
/// n! = n * (n-1) * (n-2) * ... * 1
/// n! = n * [(n-1) * (n-2) * ... * 1]
/// n! = n * (n-1)! 递归方程
/// 这是递归实现

unsigned Factorial(unsigned int n)
{
if (n == 0) return 1; // 对于0的阶乘,当n=0时,递归返回
return n * Factorial(n-1); // 递归调用
}

void main()
{
int n = 3;
printf("3! = %d",Factorial(n));
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
r1renhw
2012-06-25 · TA获得超过1577个赞
知道小有建树答主
回答量:810
采纳率:100%
帮助的人:417万
展开全部
# include <stdio.h>
void f(int n)
{
printf("调用函数f(%d)\n",n);
if (n==1)
printf("当n==%d时结束调用!\n",n);
else
f(n-1);
}
int main(void)
{
f(5);
return 0;
}
/*
----
调用函数f(5)
调用函数f(4)
调用函数f(3)
调用函数f(2)
调用函数f(1)
当n==1时结束调用!
-----
*/
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gmy8806
2012-06-25
知道答主
回答量:8
采纳率:0%
帮助的人:2.3万
展开全部
int multi(int a)
{
if(a==1)
return 1;
else
return a*multi(a-1);
}
void main()
{
printf("6!=%d\n", multi(6));
}
n的阶乘运算,递归实现。
追问
能不能完整一些,  我是C语言菜鸟  多谢!
追答
这就是个完整的程序,随便找个C编译器编译运行就有结果~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式