用C语言编写程序从键盘输入一个正整数数n,输出n!

Python012

用C语言编写程序从键盘输入一个正整数数n,输出n!,第1张

编程实现计算n!,也就是n*(n-1)*(n-2)*....*1,可以通过递归函数来实现,具体实现方法:

#include <stdio.h>

int Func(int n)

{

if(n <2)

return 1

else

return n*Func(n-1)

}

void main()

{

int n =0,m=0

printf("请输入一个正整数:")

scanf("%d",&n)

m=Func(n)

printf("%d!=%d\n",n,m)

}

在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数值后,调用Func()递归函数,首层m=n*(n-1)!,继续递归调用,m=n*(n-1)(n-2)!,这样逐层递归,直到计算出N!。

程序输出结果如下:

扩展资料:

所谓n的阶乘就是从1到n的乘积,所以除了递归法来实现以外,其实我们也可以通过一个for循环,从1到n依次求积同样可以达到计算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

*/

1、首先打开C-Free5.0,然后一个空白的C语言页面保存为switch.c文件,继续输入一般的C语言的基础格式。

2、C语言的输入语句,首先定义一个整型数值,然后从外面写入这个值。#include <stdio.h>main(){int aprintf("请输入一个1-5之间的数值: ")scanf("%d",&a)}这里的scanf() 就是从外面读入一个值给a。

3、要看下输入的值是不是赋值给了a,可以把a的值输出,如下图调试。从下图可以得出,a的值就是输入的值。

4、接着按照获得的值来执行相应的步骤,代码如下图。

5、从系统中输入一个数值,然后switch根据读到的数值判断应该做什么,注意,输入的值必须是定义的值,就比如本程序里面switch里面是一开始定义的a.int aprintf("请输入一个1-5之间的数值: ")scanf("%d",&a)switch (a){}调试下程序,看看对不对。