1 条题解

  • 0
    @ 2025-9-15 23:07:57

    C

    说明

    本题要求读取一个浮点数,并保留3位小数输出。核心逻辑是利用C语言的格式化输出功能,通过格式控制符指定小数位数。具体来说:

    • 使用printf函数的%.3f格式控制符,可将浮点数按保留3位小数的形式输出。
    • 该格式会自动对第四位小数进行四舍五入(如输入12.34521,第四位是2,小于5,故保留三位为12.345)。

    整个过程仅涉及一次输入和一次格式化输出,时间复杂度为O(1)(常数级)。

    代码

    #include <stdio.h>
    
    int main() {
        double x;
        // 读取浮点数(double类型可处理更大范围的浮点数)
        scanf("%lf", &x);
        
        // 输出保留3位小数的浮点数,%.3f是指定格式
        printf("%.3f\n", x);
        return 0;
    }
    

    C语言拓展知识

    推荐搜索:printf函数的浮点数格式控制符(%f、%lf的区别)、浮点数四舍五入的具体规则(如何处理第四位小数为5的情况)、double与float类型的精度差异。

    C++

    说明

    本题与C语言解法目标一致,均为保留3位小数输出浮点数。C++通过cout结合fixedsetprecision操纵符实现,相比C语言的printf,语法上更强调“操纵符”的使用,但功能相同,均会自动四舍五入。

    新知识

    1. 浮点数格式化输出:
      • 术语:fixedsetprecision(3)(来自库)
      • 解释:fixed用于指定浮点数以固定小数位数形式输出;setprecision(3)用于设置小数位数为3位,两者结合可实现保留3位小数的效果。
      • 对比:C语言用printf("%.3f", x)直接在格式字符串中指定;C++需通过cout << fixed << setprecision(3) << x的操纵符组合实现,结构更清晰。

    AC

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        double x;
        // 读取浮点数(double类型兼容大范围输入)
        cin >> x;
        
        // fixed + setprecision(3) 组合实现保留3位小数输出
        cout << fixed << setprecision(3) << x << endl;
        return 0;
    }
    

    C++拓展知识

    推荐搜索:C++中iomanip库的常用操纵符(如setw控制宽度、setfill填充字符)、fixedsetprecision的配合原理、浮点数在内存中的存储方式对输出精度的影响。

    • 1

    信息

    ID
    191
    时间
    1000ms
    内存
    64MiB
    难度
    6
    标签
    递交数
    190
    已通过
    53
    上传者