1 条题解
-
0
C
说明
本题要求计算两个整数a(分子)和b(分母)的商,并以双精度浮点数形式保留9位小数输出。核心思路是:
- 将整数除法转换为浮点数除法(通过类型转换避免整数截断);
- 使用格式化输出控制小数位数为9位,自动处理四舍五入。
关键在于确保除法运算为浮点数除法(如
(double)a / b),而非整数除法(会直接截断小数部分)。时间复杂度为O(1),适合处理常规整数输入。代码
#include <stdio.h> int main() { int a, b; // 读取分子a和分母b scanf("%d %d", &a, &b); // 计算浮点数商(转换为double类型避免整数除法) double result = (double)a / b; // 输出保留9位小数的结果 printf("%.9f\n", result); return 0; }C语言拓展知识
推荐搜索:C语言类型转换(显式转换
(double)的作用)、浮点数除法与整数除法的区别、printf中%.9f的四舍五入规则(如何处理第10位小数)。C++
说明
本题逻辑与C语言一致(计算分数的浮点值并保留9位小数),C++通过
fixed和setprecision(9)控制输出格式,同时利用显式类型转换确保除法为浮点数运算,代码更简洁。新知识
- 浮点数除法保证:
- 术语:
(double)a / b中的显式类型转换 - 解释:当a和b为int类型时,直接
a / b会执行整数除法(截断小数部分)。通过(double)a将a转换为double类型,触发浮点数除法,得到精确的小数结果。 - 对比:C和C++的类型转换规则相同,但C++的输出格式化更灵活。
- 术语:
AC
#include <bits/stdc++.h> using namespace std; int main() { int a, b; // 读取分子a和分母b cin >> a >> b; // 计算浮点数商(显式转换为double确保浮点数除法) double result = (double)a / b; // 输出保留9位小数 cout << fixed << setprecision(9) << result << endl; return 0; }C++拓展知识
推荐搜索:C++中隐式与显式类型转换的区别、
fixed模式下setprecision的精度控制细节、浮点数除法的精度误差来源(如无法精确表示的小数)。
- 1
信息
- ID
- 313
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 148
- 已通过
- 43
- 上传者