java输出华氏摄氏温度转换表_C语言入门教程-示例:编写能够打印华氏-摄氏温度转换表的程序...

本文提供了一个C语言程序示例,用于打印华氏-摄氏温度转换表,包括如何精确显示温度值,如何在转换表中插入人体正常体温98.6度,并解决可能的重复打印问题。读者可以学习并尝试修改程序,以接受用户输入和制作不同单位转换表。
摘要由CSDN通过智能技术生成

示例:编写能够打印华氏-摄氏温度转换表的程序

假设您要编写一个能够打印华氏-摄氏温度转换表的程序。可以使用for或者while循环可以轻松实现:

#include int main()

{int a;a=0;while (a <=100)

{printf("%4d华氏度=%4d摄氏度\n",a,(a -32.0)*5.0/9.0);a =a+10;}

return 0;}

该程序运行后将打印从华氏0度到华氏100度的转换表。输出如下:

0华氏度=-17摄氏度

10华氏度=-12摄氏度

20华氏度=-6摄氏度

30华氏度=-1摄氏度

40华氏度=4摄氏度

50华氏度=10摄氏度

60华氏度=15摄氏度

70华氏度=21摄氏度

80华氏度=26摄氏度

90华氏度=32摄氏度

100华氏度=37摄氏度

上表中温度值以10度为间隔递增。您会发现通过程序改变表中温度的起始值、结束值和递增值都很容易。

如果想让温度值更加精确的话,您可以改用浮点数值:

#include int main()

{float a;a = 0;while (a <= 100)

{printf("%6.2f 华氏度 = %6.2f 摄氏度\n",a, (a - 32.0) * 5.0 / 9.0);a = a + 10;}

return 0;}

如上例所示,a的声明改用float,而且在printf语句中用符号%f代替了符号%d。此外,还在符号%f前规定了一些格式:打印数值时使用6位整数和2位小数。

现在我们要修改程序,使它在适当的位置插入98.6度。即,我们还是每隔10度打印,但是要增加一行98.6华氏度,因为它是人体的正常体温。下面的程序会满足我们的要求:

#include

int main()

{float a;a = 0;while (a <= 100)

{if (a > 98.6)

{printf("%6.2f 华氏度 = %6.2f 摄氏度\n",98.6, (98.6 - 32.0) * 5.0 / 9.0);}

printf("%6.2f 华氏度 = %6.2f 摄氏度\n",a, (a - 32.0) * 5.0 / 9.0);

a = a + 10;}return 0;}

结束值是100时,上面的程序可以正常工作。但如果将结束值变成200,您就会发现程序的一处错误:打印了太多次98.6度。我们可以用多种方法改正这个错误。下面是其中之一:

#include

int main()

{float a, b;a = 0;b = -1;while (a <= 100)

{if ((a > 98.6) && (b < 98.6))

{printf("%6.2f 华氏度 = %6.2f 摄氏度\n",98.6, (98.6 - 32.0) * 5.0 / 9.0);

}printf("%6.2f 华氏度 = %6.2f 摄氏度\n",a, (a - 32.0) * 5.0 / 9.0);b = a;a = a + 10;}

return 0;}

动手一试

尝试修改华氏-摄氏度转换程序,以使该程序使用scanf接受用户输入,作为结果输出表格的起始、结束和增量值。

为表格制作表头。

试用另一种方法解决上例的程序改正的错误。

制作一个英镑-千克或英里-公里的转换表。

C 常见错误

在if或while语句中错用=代替==。

忘记在while循环中增加计数器的值——这会导致无限循环(永不结束的循环)。

不留神在for循环或if语句末尾加上了分号,使语句起不了作用。例如:

for (x=1; x<10; x++);

printf("%d\n",x);

只打印出一个值,因为for

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值