在美国的体积测量系统中,1品脱等于2杯,1杯等于8盎司,1盎司等于2大汤勺,1大汤勺等于3茶勺。编写一个程序,提示用户输入杯数,并以品脱、盎司、汤勺、茶勺为单位显示等价容量。思考对于该程序,为何使用浮点类型比整数类型更合适?

编程分析如下:

此问题的主要目的是将用户输入的杯数转换为其他的计量单位。

那为什么使用浮点型而不用整型呐?

主要在于1品脱等于2杯,在其转换过程中会产生半脱品的情况,会带有小数,计算过程中会被计算机舍去,会导致结果不准确。

下面我会采用浮点型和整形分别讲解:(浮点型最合适)

方法一

浮点型程序如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {float cup;//定义浮点型杯cupprintf("请输入杯数:");scanf("%f", &cup);//读取用户输入的杯数printf("%.1f杯是%.1f品脱\n", cup, cup / 2);//1品脱等于2杯printf("%.1f杯是%.1f盎司\n", cup, cup * 8);//1杯等于8盎司printf("%.1f杯是%.1f大汤勺\n", cup, cup * 8 * 2);//1盎司等于2大汤勺printf("%.1f杯是%.1f茶勺\n", cup, cup * 8 * 2 * 3);//1大汤勺等于3茶勺return 0;
}

输出结果如下:

(取杯数为20)

(取杯数为15) 

整型程序如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {int cup;//定义浮点型杯cupprintf("请输入杯数:");scanf("%d", &cup);//读取用户输入的杯数printf("%.d杯是%.d品脱\n", cup, cup / 2);//1品脱等于2杯printf("%.d杯是%.d盎司\n", cup, cup * 8);//1杯等于8盎司printf("%.d杯是%.d大汤勺\n", cup, cup * 8 * 2);//1盎司等于2大汤勺printf("%.d杯是%.d茶勺\n", cup, cup * 8 * 2 * 3);//1大汤勺等于3茶勺return 0;
}

(取杯数为15)

方法二

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define pin_cup 2//定义符号常量
#define ang_cup 8
#define tang_cup 2
#define cha_cup 3int main() {float pint, cup, ounce, spoon, tea;//定义浮点型printf("请输入杯数:");scanf("%f", &cup);             //读取用户输入的杯数pint = cup / pin_cup;          //1品脱等于2杯ounce = cup * ang_cup;         //1杯等于8盎司spoon = ounce * tang_cup;      //1盎司等于2大汤勺tea = spoon * cha_cup;         //1大汤勺等于3茶勺printf("%.1f杯是%.1f品脱\n", cup, pint);printf("%.1f杯是%.1f盎司\n", cup, ounce);printf("%.1f杯是%.1f大汤勺\n", cup, spoon);printf("%.1f杯是%.1f茶勺\n", cup, tea);return 0;
}

输出结果如下:

由上面程序知:使用整型时小数点后面的数会被舍去,导致计算结果不准确。所以说浮点型比整型更合适。

(采用两种方法)美国的体积测量系统,计量单位转换(C语言)相关推荐

  1. 机器人学D-H参数的建立(改进型与标准型)包括第0杆与第i杆的建立规则,以及针对同一个机械臂采用两种方法的区分

    -改进的dh参数法- 上图是当zi与zi-1垂直时,z,x坐标取向不同所得到的theta不同(始终是以xi-1为大拇指指向,四指由zi-1转向zi,也就是右手螺旋定则,来判断theta的正负) 标准型 ...

  2. ipad上html文件转pdf,两种方法快速实现iPad版Pages转换PDF

    方法一.转换为PDF文件并发送电子邮件 1.在 iPad 上把 Word 文件转换成 PDF 文件的话,需要一个应用软件,软件名称叫住"Pages".这个软件是 iPad 上专门用 ...

  3. 实现安全登录的两种方法

    登录安全--拦截器和过滤器或权限框架的使用 本次我们将采用两种方法实现登录的安全性,首先介绍拦截器和过滤器. 一. 过滤器和拦截器: 过滤器产生的时间/开始工作的时间: 进入Tomcat之后,但是在进 ...

  4. PDF体积太大怎么缩小?这两种方法轻松解决

    在我们日常处理的文件中,PDF文件的体积已经算是比较小的文件了,但是随着工作时间增加,我们用到的PDF文件也越来越多,而且有些PDF文件的内容非常丰富,文件体积变得更大,这就不利于我们将文件传输给别人 ...

  5. 库仑微压分析仪测定水含量两种方法的差异

    库仑法微量水分测定仪卡尔费休测水法适用于许多无机化合物和有机化合物中水含量的测定,分卡尔费休容量法和库仑法两种方法: "左传"中两种方法的最大不同之处在于I2的来源不同.在容量法中 ...

  6. 移动3g 手机显示无服务器,3G手机语音识别的两种方法分析 - 全文

    随着DSP技术的进步,计算能力更强.功耗更低和体积更小的DSP已经出现,使3G手机上植入更精确更复杂的自动语音识别(ASR)功能成为可能.目前,基本ASR应用可以分成三大类:1. 语音-文本转换(语音 ...

  7. php 自动生成查询密码,php自动生成新密码的两种方法

    php自动生成新密码的两种方法,方法一采用的是随机种子,方法是乱序数组,异曲同工吧. 有需要的朋友可以参考下. 方法1: 代码示例: /* * php自动生成新密码自定义函数 适用环境: PHP5.2 ...

  8. Response.Redirect 打开新窗口的两种方法

    一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='htt ...

  9. C#自动实现Dll(OCX)控件注册的两种方法

    打印这篇文章 尽管MS为我们提供了丰富的.net framework库,我们的程序C#开发带来了极大的便利,但是有时候,一些特定功能的控件库还是需要由第三方提供或是自己编写.当需要用到Dll引用的时候 ...

最新文章

  1. 这可能是最全的机器学习工具手册!
  2. 玩转springboot:日志的使用
  3. 获得邮件列表失败_新手在批发交易中会失败的5个领域
  4. 详解PCB抄板过程,太牛了!
  5. python之路——迭代器与生成器
  6. LeetCode 2101. 引爆最多的炸弹(图的遍历)
  7. QT每日一练day25:触发绘画事件
  8. 世界计算机模拟 波粒,光的波粒二象性的计算机模拟.pdf
  9. Aps.Net js ymPrompt消息提示组件4.0版
  10. 质性数据分析软件NVivo的安装选项和参数
  11. vivo X9L的usb调试模式在哪里,开启vivo X9Lusb调试模式的流程
  12. linux gpt转mbr命令,linux GPT转mbr
  13. c语言中提取单词首字母,C语言实现单词小帮手
  14. 2010年国家公务员考试行测真题WORD完整版
  15. win10怎么录制电脑屏幕 电脑录制视频
  16. 美国计算机硕士要读多久,去美国读研究生需要多久 各专业时长一览
  17. 中图分类法----O 数理科学和化学
  18. px5 连接充电器是充电指示灯熄灭
  19. uni-app对接支付
  20. springboot+shiro+jwt实现登录+权限验证

热门文章

  1. 小白易语言注册机post 取短信内容、单线程实战,软件日志 day06
  2. 什么是无氧铜?无氧铜的网线对于弱电工程的意义所在
  3. 700php,一个关于HD700的作死想法
  4. 使用STM32F407读取HX711压力传感器模块
  5. 招商银行APP密码格式
  6. python爬虫简单爬取天天基金的基金信息和每日净值
  7. Docker的概述与部署
  8. 10V/15V/18V/24V/30V/35V/40V/50V/60V耐高压 LDO IC
  9. Open Inventor 在STK 模型转换中的应用
  10. 转载一个大神的Makefile