1 条题解
-
0
C
说明
本题要求根据圆的半径计算直径、周长和面积,并保留4位小数输出。核心逻辑基于几何公式:
- 直径 = 2 × 半径(r),即
d = 2 * r - 周长 = 2 × π × 半径,其中π约定为3.14159,即
c = 2 * 3.14159 * r - 面积 = π × 半径²,即
s = 3.14159 * r * r
需注意输入为实数(可能含小数),因此用
double类型存储半径以保证精度。输出时通过格式化控制保留4位小数,自动处理四舍五入(如样例中周长计算结果为18.84954,保留4位为18.8495)。整个过程为O(1)时间复杂度。代码
#include <stdio.h> int main() { double r; // 读取半径(double类型用%lf格式) scanf("%lf", &r); // 计算直径、周长、面积 double diameter = 2 * r; double circumference = 2 * 3.14159 * r; double area = 3.14159 * r * r; // 输出三个结果,各保留4位小数,用空格分隔 printf("%.4f %.4f %.4f\n", diameter, circumference, area); return 0; }C语言拓展知识
推荐搜索:printf中
%f与%lf的区别(float与double的格式控制)、浮点数乘法的精度损失问题、四舍五入在格式化输出中的具体规则(如第四位小数为5时的进位处理)。C++
说明
本题逻辑与C语言一致(基于几何公式计算三个量),C++通过
fixed和setprecision操纵符实现保留4位小数的格式化输出,相比C语言的printf,代码结构更清晰,无需在格式字符串中重复指定小数位数。新知识
- 浮点数精度控制:
- 术语:
fixed与setprecision(4)(来自库) - 解释:
fixed强制浮点数以固定小数位数形式输出;setprecision(4)设置总小数位数为4,两者结合后,所有后续输出的浮点数都会自动保留4位小数并四舍五入。 - 对比:C语言需在
printf中为每个数单独写%.4f;C++只需设置一次fixed << setprecision(4),后续所有浮点数输出均遵循该规则,更简洁。
- 术语:
AC
#include <bits/stdc++.h> using namespace std; int main() { double r; // 读取半径(double类型直接用cin读取) cin >> r; // 计算三个量 double diameter = 2 * r; double circumference = 2 * 3.14159 * r; double area = 3.14159 * r * r; // 设置保留4位小数,输出三个结果(空格分隔) cout << fixed << setprecision(4) << diameter << " " << circumference << " " << area << endl; return 0; }C++拓展知识
推荐搜索:
setprecision在fixed模式与默认模式下的区别(控制小数位数 vs 控制总有效数字)、C++浮点数输出的默认格式、iomanip库中其他格式化操纵符(如setw控制输出宽度)。 - 直径 = 2 × 半径(r),即
- 1
信息
- ID
- 202
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 324
- 已通过
- 50
- 上传者