其实这个只能算到12的阶乘,因为13的判绝阶乘等于6227020800,它已经大改差于2的31次方了,也就是超过了int所能表示的最大值了(溢出),掘歼姿所以你可以把int
创新互联建站为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到网站设计、成都网站设计, 我们的网页设计师为您提供的解决方案。
改为double.
#include
stdio.h
#include
stdlib.h
double
f(int
n)
{
if(n==0||n==1)
return
1;
return
n*f(n-1);
}
int
main()
{
int
n,k,i;
printf("请输入一个数:");
scanf("%d",k);
for(i=1;i=k;i++)
{
printf("第%d个数为:",i);
scanf("%d",n);
printf("%d!=%f\n",n,f(n));
}
}
我把你写的稍微改了一下,你看看。
#includestdio.h
voidmain(){
intn,result;
printf("请输入一个数字,求它的阶乘:");
scanf("%d",n);
result=calc(n);
printf("结果:%d",result);
}
intcalc(intn){
intresult=1,i;
for(i=n;i=1;i--)
result=result*i;
returnresult;
}
扩展资料
C语言函数的调用
函数定义好以后,要被其它函数调用了才能被执行。C语言的唤答函数是能相互调用的,但在调用函数前,必须对函数的类型进行说明,就算是标准库函数也不例外。
标准库函数的说明会被按功能分别写在不一样的头文件中,使用时只让链磨要在文件最前面用#include预处理语句引入相应的头文件。如前面使用的printf函数的说明是放坦斗在文件名为stdio.h的头文件中。
1、首先打开CodeBlocks编辑器,新建一个空白页面,写入头文件和主函数:
2、然洞扒后定义枯颤樱需要的变量,编写一个输入函数接受用户输入的数值,使用for循环实现阶乘计算,没丛每次循环都用sum变量乘以循环的下标即可实现阶乘,最后需要编写输出函数,输出结果:
3、最后编译程序,输入一个数字,即可看到计算出正确的结果:
1、打开VC6.0软件,新建一个C语言的项目:盯李唯
2、接下来编写主程序,首先定义用来求阶乘的递归函数以及主函数。在main函数里定义变量sum求和,调用递归函数fact(),并将返回值赋予sum,最后使用printf打印sum的结果,主程序就编写完了:
3、最后运扰悉行程序,观察输出的凯培结果。以上就是C语言使用递归求阶乘的写法: