举例:用递归方法求n;
#include<stdio.h>
int main()
{
int n
int y
printf("input a integer number:")
scanf("%d",&n)
y=fac(n)
printf("%d!=%d\n",n,y)
return 0
}
int fac(int n)
{
int f
if(n<0)
printf("n<0,data error!")
else if(n==0||n==1)
f=1
else
f=fac(n-1)*n
return(f)
}
扩展资料:return用法:
return返回一个数值的意思就是把return&lt表达式&gt后面表达式的值返回给调用他的函数。举个例子:
int sum(int i,int j)
{
return i+j
printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了")
}
main()
{
int a=10,b=11,c
c=sum(a,b)
printf("%d",c)
}
程序的输出为:
21
这个21从何而来呢main函数调用sum(a,b)函数时将a的值赋给i,b的值赋给j,上面说了return i+j会计算i+j的值也就是结果等于21,并将21带回给调用它的函数,即c=sum(a,b)相当于c=21,这个21就是由sum(a,b)中的return反回来的。
思路:递归求阶乘函数,如果输入的参数等于1则返回1,否则返回n乘以该函数下次递归。
参考代码:
#include<stdio.h>int fun(int n)
{
if(n==1||n==0) return 1//如果参数是0或者1返回1
return n*fun(n-1)//否则返回n和下次递归的积
}
int main()
{
int n
scanf("%d",&n)
printf("%d\n",fun(n))
return 0
}
/*
5
120
*/