C语言温度转换窗体,C语言1_1:温度转换
上机1_1:温度转换
int main()
{
int f;
float c;
scanf(
"%d", &f );
//c =
5/9*(f-32);
c =
5.0/9*(f-32);
printf(
"%.2f\n", c );
return 0;
}
现象:c = 5.0/9*(f-32)正确,输入93,输出33.98;
c =
5/9*(f-32)错误,输入93,输出0.00;
c语言的类型转换:
语句和表达式通常应该是只使用一种类型的变量和常量,但如果你使用了混合类型,C则会用一个规则集合来自动完成类型的转换。这可能很方便,但也可能很危险,尤其在你无意地混合使用了不同类型的情况下。
隐式类型转换规则:
C语言自动转换不同类型的行为称之为隐式类型转换
,转换的基本原则是:低精度类型向高精度类型转换,具体是:
int -> unsigned int -> long -> unsigned long
-> long long -> unsigned long long -> float -> double -> long
double
注意,上面的顺序并不一定适用于你的机器,比如当int和long具有相同字长时,unsigned int的精度就会比long的精度高(事实上大多数针对32机的编译器都是如此)。另外需要注意的一点是并没有将char和short型写入上式,原因是他们可以被提升到int也可能被提升到unsigned int。
提升数据的精度通常是一个平滑无损害的过程,但是降低数据的精度可能导致真正的问题。原因很简单:一个较低精度的类型可能不够大,不能存放一个具有更高精度的完整的数据。一个1字节的char变量可以存放整数101但不能存放整数12345。当把浮点类型数据转换为整数类型时,他们被趋零截尾或舍入。
强制类型转换:
通常我们应该避免自动类型转换,当我们需要手动指定一个准确的数据类型时,我们可以用强制类型转换机制来达到我们的目的,使用方法很简单,在需要强制转换类型的变量或常量前面加上(type),例如(double)i;即把变量i强制转换成double型。
在c = 5/9*(f-32)中,右边是int,结果为0,左边是float,发生隐式类型转换,c为0.00;
在c = 5.0/9*(f-32)中,(f-32)的为int,结果为61,5.0/9发生隐式类型转换,转换为float,结果为9分之5,相乘为float,结果为33.98
因此,题中语句有两种写法:
c = 5.0/9*(f-32); --------------------发生隐式类型转换
c = (float)5/9*(f-32);--------------强制类型转换
int main()
{
int f;
int c1,c2;
float c;
scanf( "%d", &f );
//c = 5/9*(f-32);
c1 = 5/9*(f-32);
c2 = (float)5/9*(f-32);
c =
5.0/9*(f-32);
printf(
"%d\n", c1 );-----------输出0
printf(
"%d\n", c2 );-----------输出33
printf(
"%.2f\n", c );----------输出33.98
return 0;
}
C语言温度转换窗体,C语言1_1:温度转换相关推荐
- mbstowcs 和 wcstombs函数:C语言提供的宽字符和多字节字符转换函数
C语言中的多字节字符与宽字符 字符型char只占八位,存储ascii码的,而宽字符型是为了存储多国语言的代码unicode,包括中文,法语德语什么的,8位256种不够用了 C语言原本是在英文环境中设计 ...
- 组态中常用c语言代码,工业组态软件中CFC语言的设计实现及语言转换的研究
摘要: 近年来随着IEC61131-3国际标准的正式公布与推广,基于此标准的工业自动化领域的组态软件,经过不断完善已日趋成熟并获得了广泛的应用组态软件作为DCS PLC SCADA等控制系统的上位机软 ...
- C语言进制的格式字符,GB汉字文件转换成C语言Unicode十六进制字符串格式
可以用在编程环境只能用GB,但程序中的汉字字符串需要用C语言的Unicode十六进制字符串格式表示.可以先在字符串中直接输入汉字,再用此程序转换. 源代码用C# //ascii & GB to ...
- 论文浅尝 | 改善多语言KGQA的 Zero-shot 跨语言转换
笔记整理:谭亦鸣, 东南大学博士生 来源:NAACL'21 链接:https://aclanthology.org/2021.naacl-main.465/ 概述 为了扩展多语言知识图谱问答的应用,Z ...
- c语言注释换颜色,C语言实现注释转换
将C语言注释转换成C++注释 #pragma once #pragma warning (disable:4996) typedef enum ConvertState { SUCCESS,//转换成 ...
- c语言linux下可用函数,[原创]linux下编码转换问题,C语言实现,使用iconv函数族68...
[原创]linux下编码转换问题,C语言实现,使用iconv函数族68 (2012-07-30 02:49:00) 标签: linux 68 c语言 杂谈 #include #include #inc ...
- c语言 强制转换 作用域,C语言之总结1详解
1). 终端常用的命令: pwd 显示终端的工作路径. ls list 清单 显示当前工作路径下的所有的文件以及文件夹. ls -l 以详细信息显示当前工作路径下的所有的文件以及文件夹. cd 要切 ...
- c 语言转换成php语言,C++_C 语言进制之间的转换,二进制、八进制和十六进制向 - phpStudy...
C 语言进制之间的转换 二进制.八进制和十六进制向十进制转换都是非常容易的,就是"按权相加". 所谓"权",也即"位权".例如,十进制第1位 ...
- c语言 格式转换函数,C语言中的格式转换函数.doc
C语言中的格式转换函数 C语言中的格式转换函数 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过 ...
最新文章
- [置顶] 我的GB28181标准开发里程碑——基于eXosip的IPC端与SPVMN注册成功
- [Leetcode] Permutations 全排列
- windows设置自动清理log
- 机器学习实战(用Scikit-learn和TensorFlow进行机器学习)(九)
- python中getopt函数_python getopt模块使用方法
- reStructuredText
- Bailian2964 日历问题【日期+模拟】
- python 调用dll中c或c++语言带指针,数组方法
- 一些简单好玩的C语言程序
- AVEVA InTouch安全网关 AccessAnywhere 任意文件读取漏洞 CVE-2022-23854
- whale 帷幄:数字化营销运营 全渠道数字化精益营销管理平台
- SQL教程——常见的约束类型
- stm32编程初始化设备步骤
- 编译安装vlmcsd
- IOS测试——keychain_dumper工具的使用
- 【Java 8 新特性】Java Stream 通过min()和max()获取列表最小值和最大值
- 2017《Java技术预备作业1》计科1502杨雪莹
- 联发科MT6139射频处理器工作原理分析
- 自己编程实现抖音特效(Python)
- 哪款蓝牙耳机的音质好?四款音质最好的蓝牙耳机测评
热门文章
- 发散级数(中文维基百科)
- 机房迁移测试时需要注意事项
- vueweb端响应式布局_移动端和pc端,响应式设计布局
- 电驴诞生10周年eD2k老而弥坚
- 基于java失物招领系统
- 时事评论--公众有权知道“砒霜门“的真像
- 解决ROS中运行launch文件报错ERROR: cannot launch node of type[xxx/xxx]:xxx的问题办法最全汇总
- Xilinx Ultrascale 多通道高速TDC
- UINCODE字符串和安全字符串函数(好)
- 计算机人物事迹范文,人物事迹通讯稿范文.doc