阅读 ‧ 电子书库 错误和警告
如果输入这个程序的过程中出现错误(error),比如少了一个分号,编译器会给出语法错误消息。即使输入正确,编译器还可能发出像这样的警告(warning): “警告——从double类型转换为float类型时有可能丢失数据。“错误消息表明程序中存在错误,不能对其编译。警告则表明尽管代码正确但有可能不是程序员所要的。警告不终止编译。这里的警告和C语言怎样处理770这样的值有关。本例不必理会此问题,本章稍后将对这个警告消息进行说明。

输入此程序时您可以把770改为贵金属铑的现价,但是不要改动14.5833,这是相当于1英磅的盎司数。盎司金衡制用于衡量贵金属,而英镑常衡制用于衡量人(无论贵贱)的体重。

注意,“enter your weight”的意思是输入您的体重值,然后按Enter或Return键(不要只是键入体重后就一直等着)。按回车键是用来通知计算机已经完成了键入回答的工作。程序希望您输入一个数字(比如150),而不是单词(比如too much)。如果键入字母而非数字,程序运行将产生问题,这个问题需要使用if语句解决(请参见第7章“C控制语句:分支和跳转”)。所以这里先请输入数字。下面是程序的示例输出结果:

阅读 ‧ 电子书库

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

此程序中的新元素

此程序中包含C语言如下的一些新元素:

● 请注意代码中使用了一种新的变量声明。前面例子中只有整型变量(int),而本例中还包含了一个浮点变量(float)类型,以便处理更大范围内的数据。float类型可以处理带有小数点的数字。
● 程序还示范了常量的几种新写法,您现在就可以使用带有小数点的数了。
● 要打印这种新的变量类型,请在printf()代码中使用%f说明符来处理浮点值。对%f说明符使用.2修饰词可以精确控制输出格式,使浮点数显示到小数点后两位。
● 使用scanf()函数为程序提供键盘输入。%f指示scanf()从键盘读取一个浮点数,&weight指定将输入值赋于名为weight的变量中。scanf()函数使用&符号指示weight变量的位置。下一章将进一步讨论&符号,现在请相信此处您需要它。
● 也许本程序最突出的新特点是它的交互性。计算机向您询问信息,并使用您输入的数字。与非交互性程序相比较,交互性程序使用起来更为有趣。更重要的是,交互性方法使程序更加灵活。例如,本示例程序可以用于任何合理的体重,而不只是150磅。不必每次重写,程序即可针对不同体重进行计算。scanf()和printf()函数使这种交互性成为可能。scanf()函数从键盘读取数据并将其传递给程序,而printf()函数则从程序读取数据并将其传递给屏幕。两个函数一起使用,就可以建立人机之间的双向通信(请参见图3.1),这使计算机的使用更加饶有趣味。

阅读 ‧ 电子书库

图3.1 工作中的scanf()函数和printf()函数

本章解释上述新特性列表中的前两项:各种数据类型的变量和常量。第4章“字符串和格式化输入/输出”将介绍后3项,本章仍将继续使用scanf()和printf()的有限功能。