摄氏——华氏温度转换表

摄氏——华氏温度转换表ProblemD 摄氏 华氏温度转换表 TimeLimit 1SecMemoryLi 2MBSubmit 26065Solved 7063 Submit Status Description 已知华氏温度 F 转换为摄氏温度 C 的公式为 C F 32 5 9

Problem D: 摄氏——华氏温度转换表
Time Limit: 1 Sec Memory Limit: 2 MB
Submit: 26065 Solved: 7063
[Submit][Status]
Description
已知华氏温度F,转换为摄氏温度C的公式为C=(F-32)*5/9。

输出给定范围(从low到high)和步长(step)的摄氏——华氏温度转换表

第2、3行为两个整数:high和low,其值在-100到200之间。

第4行为step,step精确到小数点后1位。

从输出的第2行开始为从温度low到温度high(包括low和high)的转换表,温度输出精确到小数点后1位,表格被“->”分为两个宽度相同的部分,其它的测试样例也不会给出超出宽度的数据,格式详见sample。

Sample Input
C->F
-10
40
2.5
Sample Output
C -> F
-10.0 -> 14.0
-7.5 -> 18.5
-5.0 -> 23.0
-2.5 -> 27.5
0.0 -> 32.0
2.5 -> 36.5
5.0 -> 41.0
7.5 -> 45.5
10.0 -> 50.0
12.5 -> 54.5
15.0 -> 59.0
17.5 -> 63.5
20.0 -> 68.0
22.5 -> 72.5
25.0 -> 77.0
27.5 -> 81.5
30.0 -> 86.0
32.5 -> 90.5
35.0 -> 95.0
37.5 -> 99.5
40.0 -> 104.0
HINT
输出格式可以通过sample分析出来,因为两栏的总宽度是固定的。一个隐藏的陷阱是step是浮点数,某些浮点数是无法精确存储的,因此经过一定量的计算后这个误差会影响到浮点数的相等性判断,需要加上精度控制。

Append Code

#include<stdio.h> #include<string.h> int main() { 
    char a,b; double c,d,e,f; scanf("%c->%c",&a,&b); scanf("%lf%lf%lf",&c,&d,&e); if(a=='C'&&b=='F') { 
    printf(" C -> F\n"); for(c;c<=d+0.01;c+=e) { 
    f=32+c*9/5.0; printf("%5.1lf -> %5.1lf\n",c,f); } } else if(a=='F'&&b=='C') { 
    printf(" F -> C\n"); for(c;c<=d+0.01;c+=e) { 
    f=(c-32)*5/9; printf("%5.1lf -> %5.1lf\n",c,f); } } return 0; } 

浮点数无法精确存储,因此需要加0.01

今天的文章 摄氏——华氏温度转换表分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-17 14:01
下一篇 2024-12-17 13:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/88880.html