c语言如何求一个数的阶乘

c语言如何求一个数的阶乘,第1张

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))

}

}

我把你写的稍微改了一下,你看看。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7793632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存