n的阶乘就是从1到的累积,所以可以通过一个for循环,从1到n依次求积即可。
参考代码:
#include "stdio.h"
int main() {
int n,i,s=1
scanf("%d",&n)
for(i=1i<=ni++)//for循环求累积
s=s*i
printf("%d\n",s)
return 0
}
/*
运行结果:(例如求5的阶乘)
5
120
*/
扩展资料:
return用法:
return返回一个数值的意思就是把return<表达式>后面表达式的值返回给调用他的函数。举个例子:
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)
}
1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。
2、然后定义一个变量【result】,如下图所示。
3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。
4、接下来就可以调用输出,如下图所示。
5、最后点击运行,如下图所示,就可以运行测试。
其实这个只能算到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=1i<=ki++)
{
printf("第%d个数为:",i)
scanf("%d",&n)
printf("%d!=%f\n",n,f(n))
}
}
我把你写的稍微改了一下,你看看。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)