5.7 一个示例程序

程序清单5.16列出了一个举例说明本章的几个概念的程序,(对于一小部分特定的人)这个程序会派上一定用场。它看起来有些长,但是所有的计算都在接近末尾的6行里被执行。程序的大部分用于在计算机和用户之间传递信息。我们已经试着使用大量的注释来使程序的意义清晰明白。请通读此程序,在您读完后我们将给出几点说明。

程序清单5.16 running.c程序

阅读 ‧ 电子书库

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

阅读 ‧ 电子书库

程序清单5.16使用以前在min_sec里使用的方法来将最后的时间转变成分钟和秒,但是它也使用了类型转换。为什么?因为程序中把秒转换为分钟的那部分需要整型参数,但是把公里转换为英里的那部分涉及浮点数的运算。我们已经使用了指派运算符来使这些转换更为明显。

实际上,可以只使用自动转换来写该程序。我们的确也曾经那样做过,使用int型的mtime来强制时间计算转换成整数形式。然而,在我们进行试验的11个系统中,那个版本的程序在1个系统上不能运行。那个编译器(一个有点老的版本)没有遵守C规则。使用类型指派使您的目的不但对读者很明显,就是对编译器也很明显。

下面是一个输出示例:

This program converts your time for a metric race to a time for running a mile and to your average speed in miles per hour.

Please enter, in kilometers, the distance run.

10.0

Next enter the time in minutes and seconds.

Begin by entering the minutes.

36

Now enter the seconds.

23

You ran 10.00 km(6.21 miles)in 36 min, 23 sec.

That pace corresponds to running a mile in 5 min, 51 sec.

Your average speed was 10.25 mph.