合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
练习2-6 计算物体自由下落的距离
一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒^2。
输入格式:
本题目没有输入。
输出格式:
按照下列格式输出
height = 垂直距离值
结果保留2位小数。
二、解题思路 ⭐️
三、代码(C语言)⭐️
#include <stdio.h>
int main() {
int a = 10,
t = 3;
double height;
// 使用浮点数除法
height = 1.0 / 2.0 * a * t * t; // 或者 height = 0.5 * a * t * t;
printf("height = %.2f", height);
return 0;
}
四、知识点 ⭐️
(一)、整数除法 和 浮点数除法 的区别 🍭
1、整数除法 🎀
操作数类型 🍓:两个操作数都是整数(如
int
)。结果类型 🫐:结果也是整数。
计算规则 🍇:
如果除法的结果有小数部分,小数部分会被直接丢弃(截断),只保留整数部分。
例如 🌰:5 / 2 的结果是 2,而不是 2.5。
int a = 5;
int b = 2;
int result = a / b; // result = 2
2、浮点数除法 🎀
操作数类型 🍓:至少有一个操作数是浮点数(如
float
或double
)。结果类型 🫐:结果是浮点数。
计算规则 🍇:
如果除法的结果有小数部分,小数部分会被保留。
例如 🌰:5.0 / 2 的结果是 2.5。
double a = 5.0;
int b = 2;
double result = a / b; // result = 2.5
3、关键区别 🎀
特性 | 整数除法 | 浮点数除法 |
---|---|---|
操作数类型 | 两个整数 | 至少一个浮点数 |
结果类型 | 整数 | 浮点数 |
小数部分 | 丢弃(截断) | 保留 |
示例 | 5 / 2 结果是 2 |
5.0 / 2 结果是 2.5 |
4、C
语言中的注意事项 🎀
- 隐式类型转换:
- 如果表达式中同时包含整数和浮点数,
C
语言会将整数隐式转换为浮点数,然后进行浮点数除法。 - 例如 🌰:
5 / 2.0
会被转换为5.0 / 2.0
,结果是2.5
。
- 如果表达式中同时包含整数和浮点数,
- 显式类型转换:
- 可以通过强制类型转换将整数转换为浮点数,从而进行浮点数除法。
- 例如 🌰:
(double)5 / 2
的结果是2.5
。
5、代码示例 🎀
#include <stdio.h>
int main() {
// 整数除法
int a = 5;
int b = 2;
int int_result = a / b; // 结果是 2
printf("Integer division: %d\n", int_result);
// 浮点数除法
double c = 5.0;
double d = 2.0;
double float_result = c / d; // 结果是 2.5
printf("Floating-point division: %.2f\n", float_result);
// 混合类型除法(隐式转换)
double mixed_result = a / d; // 5 / 2.0 = 2.5
printf("Mixed division: %.2f\n", mixed_result);
// 显式类型转换
double explicit_result = (double)a / b; // 5.0 / 2 = 2.5
printf("Explicit conversion division: %.2f\n", explicit_result);
return 0;
}
输出结果: 👇🏻
Integer division: 2
Floating-point division: 2.50
Mixed division: 2.50
Explicit conversion division: 2.50
6、总结 🎀
整数除法:丢弃小数部分,结果只保留整数。
浮点数除法:保留小数部分,结果是浮点数。
在
C
语言中,如果希望得到精确的浮点数结果,需要确保至少有一个操作数是浮点数,或者使用显式类型转换。