1 条题解

  • 0
    @ 2025-9-15 23:10:38

    C

    说明

    本题要求根据圆的半径计算直径、周长和面积,并保留4位小数输出。核心逻辑基于几何公式:

    1. 直径 = 2 × 半径(r),即 d = 2 * r
    2. 周长 = 2 × π × 半径,其中π约定为3.14159,即 c = 2 * 3.14159 * r
    3. 面积 = π × 半径²,即 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++通过fixedsetprecision操纵符实现保留4位小数的格式化输出,相比C语言的printf,代码结构更清晰,无需在格式字符串中重复指定小数位数。

    新知识

    1. 浮点数精度控制:
      • 术语:fixedsetprecision(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++拓展知识

    推荐搜索:setprecisionfixed模式与默认模式下的区别(控制小数位数 vs 控制总有效数字)、C++浮点数输出的默认格式、iomanip库中其他格式化操纵符(如setw控制输出宽度)。

    • 1

    信息

    ID
    202
    时间
    1000ms
    内存
    128MiB
    难度
    8
    标签
    递交数
    324
    已通过
    50
    上传者