3.6 例题

3.6.1 简单的类型转换

题目:输入3个正整数,求其平均值(精确到小数点后两位)。

3.6 例题 - 图1

3.6 例题 - 图2

结果如下:

3.6 例题 - 图3

练习

输入两个正整数,求其商(精确到小数点后两位)

3.6.2 最基础的算法——交换变量的值

题目:现有6个整数,依次为7,8,9,10,11,12。首先交换第一个与第三个数,再交换第二个与第四个数,再交换第五个与第一个数,再交换第四个与第三个数。问最后的次序如何?

程序代码3-4

3.6 例题 - 图4

3.6 例题 - 图5

结果如下:

3.6 例题 - 图6

交换变量的值,是程序设计中一个最最基本的算法,务必掌握。代码中演示的是一种最基本也是最常用的算法。这种办法需要借助一个中间变量。不借助中间变量也可以实现变量的交换。例如:

3.6 例题 - 图7

但是这种算法显然存在可能发生溢出的问题。

练习

题目同本小节例题,但要求从键盘输入6个整数。

3.6.3 编程不是列公式

例题:猴子摘了若干桃子,第一天吃了一半后又多吃了一个,第二天吃了剩下的桃子的一半又多吃了一个,以后每天均吃掉前一天剩下的一半再多吃1个,到第五天刚好吃完。问最初摘了几个桃子。

分析:每天桃子的数目有两个,吃桃子之前的数目和吃完之后的数目,这两个数目在代码中分别用tzs_cq(吃前的桃子数)和tzs_ch(吃后的桃子数)来存储。显然,对于同一天来说,两者存在着tzs_cq=(tzs_ch+1)*2这样的关系;而对于相邻两天来说,前一天的tzs_ch显然等于后一天的tzs_cq。

程序代码3-5

3.6 例题 - 图8

3.6 例题 - 图9

结果如下:

3.6 例题 - 图10

这个题目并没有什么难度,即使是用纸笔也很容易计算出结果。在这里的用意是希望读者能进一步体会什么是算法以及算法具有什么特点,因为下一小节将对算法的特性做出讨论。

练习

一球从100高度落下,每次落地后反弹高度为落下高度的1/3。问在第4次落地时球共经过了多少米,第4次弹起多高?(保留2位小数)