1.8.2 情景应用2--求10!
视频讲解:光盘\mr\lx\01\求10!.exe
实例位置:光盘\mr\01\qjyy\02
编写代码实现求10!。程序运行效果如图1.36所示。
|
| 图1.36 程序运行效果 |
在写程序之前首先要理清求10!的思路。求一个数n的阶乘的公式为n*(n-1)*(n-2)*…*2*1,那么反过来从1一直乘到n求依然成立。当n为0和1时单独考虑,此时它们的阶乘均为1。
实现过程如下:
(1)在TC中创建一个C文件。
(2)引用头文件。
- #include<stdio.h>
(3)定义数据类型,本实例中i、n均为基本整型,fac为单精度型,分别赋初值1。
(4)用if语句判断如果输入的数是0或1,输出阶乘是1。
(5)当while语句中的表达式i小于等于输入的数n时,执行while循环体中的语句,fac=fac*i的作用是当i为2时求2!,当i为3时求3!,…,当i为n时求n!。
(6)将n的值和最终所求的fac的值输出。
(7)主要程序代码如下:
- main()
- {
- int i=2,n=10; /*定义变
量i、n为基本整型,并为i赋初值2*/ - float fac=1; /*定义fac为单精度型并赋初值1*/
- /*使用scanf函数获取n的值*/
- if(n==0||n==1) /*当n为0或1时输出阶乘为1*/
- {
- printf("factorial is 1.\n");
- return 0;
- }
- while(i<=n) /*当满足输
入的数值大于等于i时执行循环体语句*/ - {
- facfac=fac*i; /*实现求阶乘的过程*/
- i++; /*变量i自加*/
- }
- printf("factorial of %d is:%.2f.\n",n,fac); /*输出n和fac最终的值*/
- }
DIY:编写求1到10连乘的程序,输出结果。(25分)(实例位置:光盘\mr\01\qjyy\02_diy)