1.打开vc6.0软件,创建一个新的c语言项目:
2。接下来,编写主程序,首先定义递归函数和用于求阶乘的主函数。在main函数中定义变量sum的和,调用递归函数fact(),并将返回值赋给sum。最后用printf打印求和结果,主程序完成。最后,运行程序并观察输出结果。上面是c语言如何用递归法求阶乘
1,打开vc6.0,创建一个新的vc项目,添加一个头文件,添加一个空的主函数,首先定义一个求阶乘的函数,该函数的参数是i,阶乘与上一个数相乘,这是连续地与事实函数相乘,然后写主函数的内容:
2,在主函数中定义int型变量sum,然后调用fa。ct()将返回值赋给sum,最后使用printf打印sum的值:
3。最后,编写程序后,运行程序观察结果。在这里你可以看到6的阶乘被打印出来。以上是c语言使用递归方式寻找阶乘的过程:
本题考察了基本技巧,了解变量值的变化:#include”stdio。h“intok(inta){intaa=aif(a==1)a=1elsea=aa*ok(--a)//如果在这里使用a而不是aa,那么应该达到的效果是a=a*ok(a-1),因为a的值是由语句确定的最终值,并且因为执行了--a,所以这个语句相当于a=(a-1)*ok(a-1),所以必须替换第一个areturna}main(){intb,nscanf(%d,&b)n=ok(b)printf(%b!=%d”,n)}用一个局部变量
下一个程序分析,阶乘可以用递归做,也可以用循环做,这里介绍两种代码。
1、递归:
#include<stdio。h>
intf(intt)
{
if(t==1)
return1
else
returnt*f(t-1)
}
intmain()
{
printf(%dn,f(10))
return0
}
程序分析:定义一个f函数,使用递归特性,进行运算
10*f(9)=10*9*f(8)循环:
#include<stdio。h>
intmain()
{
intt1=1
for(inti=10i>=1i--)
{
t1=t1*i
}]printf(%d,t1)
return0
}]程序分析:直接使用for循环进行自减法,并定义t1来存储结果
结果: