且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-09-21 22:25:59

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