7-1-int和double型的强制类型转换

本文介绍了一种算法,用于将输入的厘米数值转换为对应的英尺和英寸表示形式,适用于编程初学者理解和实践基本的单位换算逻辑。

基础编程题之

7-1 厘米换算英尺英寸 (15 分)
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。

输入格式:
输入在一行中给出1个正整数,单位是厘米。

输出格式:
在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。

输入样例:
170
输出样例:
5 6
//算法思想:
先将厘米直接取整就是英尺数,而剩下的小数就是英寸数
需要注意的是小数需要用浮点数来承接,有一个强制类型转换的过程,一直在这里纠结了好久,
主要是对数学公式的理解不够透彻^…^哭唧唧…
//

#include<stdio.h>
int main(){
  int foot,inch,cm;
  double m;
  scanf("%d",&cm);
  foot=cm/30.48;
  m=cm/30.48-foot;
  inch=m*12;
  printf("%d %d",foot,inch);
  return 0;
}

欢迎随时吐槽,讨论~~~~~

在C语言中,`int``double`类之间的强制转换是一种常见的数据类型转换操作。这种转换可以通过显式的强制类型转换运算符完成,也可以通过隐式的类型转换实现。以下是对这两种方法的详细介绍: ### 显式强制类型转换 显式强制类型转换是通过使用强制类型转换运算符 `(type_name)` 来完成的。这种方法允许开发者明确地将一个数据类型转换为另一个数据类- **从 `double` 转换为 `int`**:当一个 `double` 类的值被转换为 `int` 类时,小数部分会被直接舍弃,只保留整数部分。例如: ```c double d = 12.78; int i = (int)d; // i 的值将是 12 ``` - **从 `int` 转换为 `double`**:当一个 `int` 类的值被转换为 `double` 类时,整数值将被转换为对应的浮点数值,即添加一个 `.0` 后缀。例如: ```c int i = 12; double d = (double)i; // d 的值将是 12.0 ``` ### 隐式类型转换 隐式类型转换发生在表达式中不同数据类的操作数之间,编译器会自动进行类型转换以确保操作能够正确执行。这种转换通常发生在赋值操作或函数调用时参数传递的过程中。 - **从 `int` 到 `double` 的隐式转换**:当一个 `int` 类的值与 `double` 类的值进行运算时,`int` 类的值会被自动转换为 `double` 类。例如: ```c int i = 5; double d = i + 3.14; // i 被转换为 double,d 的值将是 8.14 ``` - **从 `double` 到 `int` 的隐式转换**:虽然 `double` 到 `int` 的转换通常需要显式转换,但在某些情况下,如赋值给 `int` 类变量时,编译器可能会自动进行转换,但这通常会导致警告,因为这可能导致数据丢失。例如: ```c double d = 12.78; int i = d; // 编译器可能会发出警告,i 的值将是 12 ``` ### 注意事项 在进行类型转换时,特别是从 `double` 到 `int` 的转换,需要注意可能的数据丢失问题。由于 `int` 类不能存储小数部分,因此转换过程中会直接丢弃小数部分,而不是进行四舍五入。此外,在进行隐式类型转换时,应当注意编译器可能产生的警告信息,以确保程序的行为符合预期[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值