这是《C程序设计语言》第二版中1.2的练习题,要求根据Celsius = (5 / 9) * (Fahr - 32)的公式实现一个比照表的打印输出。 (运算符号两侧最好用空格与其他内容分隔开,这样可以提高代码的可读性)

这道练习题看似简单,但其实藏着一个很容易被忽视的坑,那就是C语言中,整数除法操作会自动执行舍位,结果中的任何小数部分都会被舍弃。由于5和9都是整数,相除结果为0,因此这样计算求得的所有摄氏度都将为0。对此我们采用5 * (Fahr - 32) / 9的运算方式来进行运算下面是成功的例子

#include <stdio.h>
main(){
//整数型华氏度摄氏度比照表成功案例 int Fahr,Celsius;int max,min,step;max = 300;//最大值min = 0;//最小值step = 20;//步长(间距)Fahr = min;printf("Fahr\tCelsius\n");//打印标题while(Fahr <= max){
//while循环语句,循环将Fahr换算为CelsiusCelsius = 5*(Fahr - 32) / 9;printf("%d\t%d\n",Fahr,Celsius);
//%d\t和%d\n整体上作为printf语句的第一个参数,分别对第二和第三个参数的格式进行设置
//%d表示按照整数打印,
//%.1f表示按照整数打印,小数点后有一位小数
//%9f表示按照整数打印,至少9个字符宽
//%9.1f表示则是在上述基础上,小数点后有一位小数
//\t和\n是换码序列,\t表示制表符(9个空格)\n表示换行输出Fahr = Fahr + step;}
}

使用整数型的变量有较大的不足,计算得到的摄氏度不太精确,例如华氏度0应对应摄氏度-17.8,计算得到的结果却为-17,这点在下面的程序中能得到解决。

由于已经用float声明了变量为浮点型,因此在=的赋值运算中,等号右侧的字面量(数据)会自动转换为小数 ,但最好还是将字面量(数据)写为小数的形式,这样可以强调其浮点性,增强代码可读性。

#include <stdio.h>
main(){float Fahr,Celsius;float Upper,Lower,Step;Upper = 300;Lower = 0.0;Step = 20.0;//由于已经用float声明了变量为浮点型,//因此在=的赋值运算中,等号右侧的字面量(数据)会自动转换为小数 //但最好还是将字面量(数据)写为小数的形式,这样可以强调其浮点性,增强代码可读性。 Fahr = Lower;printf("Fahr\tCelsius\n"); while(Fahr <= Upper){Celsius = 5 * (Fahr - 32) / 9;printf("%3.0f %9.1f\n",Fahr,Celsius);//%f表示按照浮点数打印,//%.1f表示按照浮点数打印,小数点后有一位小数 //%9f表示按照浮点数打印,至少9个字符宽 //%9.1f表示按照则是在上述基础上,小数点后有一位小数 Fahr = Fahr + Step;}
}

%f表示按照浮点数打印,
%.1f表示按照浮点数打印,小数点后有一位小数 
%9f表示按照浮点数打印,至少9个字符宽 
%9.1f表示按照则是在上述基础上,小数点后有一位小数

c语言习题:华氏度摄氏度比照表相关推荐

  1. C习题:华氏度转摄氏度

    # include <stdio.h># include <stdlib.h>int main(void) { float c, f; printf("请输入华氏度: ...

  2. 第二章华氏度摄氏度转换

    /*摄氏度与华氏度对的转换公式位摄氏度=5/9.0*(华氏度-32)*///输入方法Scanner scanner=new Scanner(System.in);System.out.print(&q ...

  3. 华氏度摄氏度温度转换

    代码如下: TempStr = input('请输入带有符号的温度值:') if TempStr[-1] in ['F', 'f']:C = (eval(TempStr[0:-1]) - 32) / ...

  4. python3-输入华氏度转化为摄氏度

    摄氏度=华氏度-32再除以1.8,即 摄氏度=(华氏度-32)/1.8 因为input输入的值为字符串,所以在计算的时候要用eval()函数将str字符串类型转化为数值类型,才能进行计算. x = i ...

  5. python3-输入摄氏度转化为华氏度

    python3-输入摄氏度转化为华氏度  华氏度 = 32 + 摄氏度*1.8 代码: # 华氏度=(摄氏度*1.8)+32 x = input("请输入摄氏温度:") y = 3 ...

  6. 华氏度与摄氏度对照表

    #include <stdio.h>int main() {int i;float c,a=0.56;printf("华氏度 摄氏度\n");for(i=0;i< ...

  7. Python小实例摄氏度华氏度转换

    摄氏度<>华氏度转换 今天是正式开始自学Python的第一天,看到视频中有一个题目,温度转换.于是暂停页面,自己先去尝试写了写.后来又研究了一下老师的程序. 自己写的程序 #华氏度-摄氏度 ...

  8. c语言程序计算华氏度,C语言:一个计算摄氏度华氏度和绝对温度三种数转换的程序...

    C语言:一个计算摄氏度华氏度和绝对温度三种数转换的程序 答案:2  信息版本:手机版 解决时间 2020-03-31 21:49 已解决 2020-03-31 06:26 初学C语言 有道题大概是 要 ...

  9. #c语言华氏度与摄氏度的转化(c语言)

    华氏度与摄氏度的转化(c语言) List item 必备知识摄氏度与华氏度的转换C=5/9×(F-32) List item (令摄氏度为c,华氏度为f) #include<stdio.h> ...

最新文章

  1. Intel X86 CPU系列的寄存器
  2. Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(三)
  3. ITK:概念检查是浮点数
  4. deepin中zz_如何解决R中的FizzBu​​zz问题
  5. mexopenCV的配置学习过程
  6. 写篇技术博客被简书锁定是一种什么样的体验
  7. vue组件弹出框点击显示隐藏
  8. 如何更改java应用程序标题栏默认图标
  9. vue前端页面通用模板梳理
  10. angular自定义管道
  11. word2010撤销功能的恢复方法
  12. 博士申请 | 加拿大麦克马斯特大学郑榕教授招收全奖博士生/博士后
  13. 循环减肥c语言,减肥,这次终于告别一再反弹的死循环
  14. Linux搭建部署JDK1.7环境
  15. spring boot参数校验 告别校验胶水代码
  16. 模式识别:三层BP神经网络的设计与实现
  17. java concurrent 探秘
  18. html使用a跳转页面,HTML之a标签的使用
  19. 破解利器C32Asm和IDApro
  20. IDEA如何建立 包中包

热门文章

  1. Python:实现natural sort自然排序算法(附完整源码)
  2. 标准std::string分割字符串split
  3. 【数组】雇佣 K 名工人的最低成本
  4. 音频降噪算法 java_基于RNN的音频降噪算法
  5. 与门的Python实现
  6. 局域网SDN技术硬核内幕 二 从软件Overlay到硬件Overlay
  7. 联发科有没有高端处理器_联发科处理器怎么样?真的很差吗?
  8. 变化检测DSCN论文介绍
  9. A Survey of Adversarial Learning on Graph
  10. python 爬取数据intraday_使用Python检索Fitbit心率数据