正文

第一堂课 初识C语言(18)

学通C语言的24堂课 作者:刘彬彬


1.8.2  情景应用2——求10!

 视频讲解:光盘\mr\lx\01\求10!.exe

 实例位置:光盘\mr\01\qjyy\02

编写代码实现求10!。程序运行效果如图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时执行循环体语句*/

{

fac=fac*i; /*实现求阶乘的过程*/

i++; /*变量i自加*/

}

printf("factorial of %d is:%.2f.\n",n,fac); /*输出n和fac最终的值*/

}

DIY:编写求1到10连乘的程序,输出结果。(25分)(实例位置:光盘\mr\01\qjyy\02_diy)

1.8.3  情景应用3——猴子吃桃

 视频讲解:光盘\mr\lx\01\猴子吃桃.exe

 实例位置:光盘\mr\01\qjyy\03

猴子吃桃问题:猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。编写程序求第一天共摘了多少桃子。程序运行效果如图1.37所示。


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号