《C语言程序设计》一 2.5 案例学习——华氏温度与摄氏温度的转换-阿里云开发者社区

开发者社区> 华章出版社> 正文

《C语言程序设计》一 2.5 案例学习——华氏温度与摄氏温度的转换

简介: 本节书摘来自华章出版社《C语言程序设计》一 书中的第2章,第2.5节,作者:赵宏 陈旭东 马迪芳,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.5 案例学习——华氏温度与摄氏温度的转换

【例2-7】 你的一个朋友要去某地旅游,当地天气预报是用华氏温度报告的,请你编写程序,帮助你的朋友进行温度的转换,计算并输出对应的摄氏温度。
1.问题分析
1)确定预期的输出。问题中有“计算并输出对应的摄氏温度”,明确了输出项为摄氏温度celsius。
2)确定输入项。本需求中,输入项是华氏温度fahrenheit。
3)列出输入与输出关系的公式。本例中由华氏温度计算摄氏温度的公式为celsius = 5/9(fahrenheit-32)。
4)进行手工计算。设f值为80,对应的c值应为26.67。
2.算法设计
本例中只需要顶层算法:

输入一个华氏温度
用公式celsius = 5 / 9(fahrenheit - 32)计算对应的摄氏温度

输出摄氏温度值

3.代码编写

#include <stdio.h>

int main()
{  
    float  celsius, fahrenheit;           /*变量定义*/
    
    printf("请输入一个华氏温度:\n");       /*必要的提示信息*/
    scanf("%f", &fahrenheit);               /*键盘输入需要转换的华氏温度值*/
    
    celsius = 5 / 9 *(fahrenheit - 32);     /*计算对应的摄氏温度值*/
    
    printf("华氏温度:%.2f,对应的摄氏温度为%.2f\n", fahrenheit, celsius);  /*输出结果*/

    return 0;
}

4.测试与调试
运行该程序,结果为:

请输入一个华氏温度:
80

华氏温度:80.00,对应的摄氏温度为0

程序运行结果与手工计算结果不同,对程序进行测试,发现不管输入数据是多少,结果都为0。考虑到在C语言中5/9为0,所以将转换的数学模型变换为celsius = 5 *(fahrenheit-32)/9。修改后的程序为:

/*程序名:prg2-7.c*/
/*功能:输入一个华氏温度,输出对应摄氏温度*/
#include <stdio.h>

int main()
{    
    float  celsius, fahrenheit;             /*变量定义*/
    
    printf("请输入一个华氏温度:\n");       /*必要的提示信息*/
    scanf("%f", &fahrenheit);               /*键盘输入需要转换的华氏温度值*/
    
    celsius = 5 *( fahrenheit - 32)/ 9;     /*计算对应的摄氏温度值*/
    
    printf("华氏温度:%.2f,对应的摄氏温度为%.2f\n", fahrenheit, celsius);  /*输出结果*/

    return 0;
}

运行该程序,结果为:

请输入一个华氏温度:
80
华氏温度:80.00,对应的摄氏温度为26.67

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接