用递归方法编写一个求阶乘的子函数,主函数调用该子函数,输入正整数n,求n!

如题所述

第1个回答  2013-03-20
#include <stdio.h>
int step(int x){ //递归函数,返回阶乘结果
if (x>1) { //参数=1为出口,返回1
return x*step(x-1);//返回当前数与比当前数小一的数的阶乘的积
}
return 1;
}

int main(){
int n;
scanf ("%d",&n);
printf ("%d",step(n));
return 0;
}本回答被网友采纳
第2个回答  推荐于2018-02-28
#include <stdio.h>
int jc(int n)
{
if (n>1)
return n * jc(n-1);
else
return n;
}
main()
{
int n;
printf("input a number:");
scanf("%d", &n);
printf("%d\n", jc(n));
}本回答被网友采纳
第3个回答  2013-04-01
#include"stdio.h"
float main(void)
{
float fac(int n);
int n;
float y;
printf("请输入n的值\n");
scanf("%d\n",&n);
y=fac(n);
printf("%d!=%10.0f\n",n,y);
}
float fac(int n)
{
float f;
if(n<0)
printf("输入的数据错误,请重新输入!\n");
else if(n==0||n==1)
f=1;
else f=fac(n-1)*n;
return(f);
}
相似回答