好家伙,原来你是这样的printf函数!

起因:

没事刷洛谷偶然发现了这个题

一看,不就一个简单的三角形面积嘛,海伦公式秒了

一做发现有点小问题,四舍五入怎么搞?想起来 C++ 的 cmath 库函数里有个 round 函数,直接拿来用就行了,我第一遍提交的代码是这样的:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double edge1, edge2, edge3;
    cin >> edge1 >> edge2 >> edge3;

    double p = (edge1 + edge2 + edge3) * 0.5;
    double area = sqrt(p * (p - edge1) * (p - edge2) * (p - edge3));

    double round_area = round(area);

    printf("%.1lf", round_area);
    return 0;
}

 然后美滋滋的去提交,结果.....................

纳尼?

What's up 你怕不是在逗我,入门题我都只对了一个测试点

然后就是漫长的排查问题,emmmmmm,排了半天也没有排查出来原因

没办法,去看题解吧

然后发现题解中的结果都没有四舍五入,直接

printf("%.1lf", area);

就完事了?

然后我试了试,去掉 round 函数还真过了

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double edge1, edge2, edge3;
    cin >> edge1 >> edge2 >> edge3;

    double p = (edge1 + edge2 + edge3) * 0.5;
    double area = sqrt(p * (p - edge1) * (p - edge2) * (p - edge3));

    //double round_area = round(area);
    // 设置精度的时候是自带四舍五入功能的,不需要再次引入库函数

    printf("%.1f", area);
    return 0;
}

我靠,真神奇!

以前从没有注意到这个问题,只是知道printf函数可以保留精度,不知道还可以四舍五入啊(也可能是书上有,很久没看书忘了............)

于是我找了几个数据测试了一下

 emmmmm,长知识了,确实可以四舍五入,前提是需要printf函数保留精度并且保留的精度不是小数点后的最后一位

冷知识:float 和 double 默认保留的都是 6 位小数,所以 Number4 输出的末尾会有一个0

今天又是知识满满的一天!

总结:

 如果题目需要对数据进行四舍五入,同时还需要对数据保留一定的精度,不用调用库函数 round,直接输出的时候对精度进行指定位数的保留就行了,无所谓,printf 函数会出手

 如果您觉得我的文章有问题,请您私信我,我看到后会及时改正!

感谢您的阅读!

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 13:04:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 13:04:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 13:04:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 13:04:01       20 阅读

热门阅读

  1. K8S实战:Centos7部署Kubernetes1.24.0集群

    2024-02-22 13:04:01       32 阅读
  2. word常用技巧--页码分节、多个参考文献连续引用

    2024-02-22 13:04:01       22 阅读
  3. 间隔分区表导出指定的分区数据

    2024-02-22 13:04:01       23 阅读
  4. 零基础到高级:Android音视频开发技能路径规划

    2024-02-22 13:04:01       29 阅读
  5. Redis降低内存占用(二)分片结构

    2024-02-22 13:04:01       28 阅读
  6. 【 OpenGL 教程06 】 关于着色器(01)

    2024-02-22 13:04:01       23 阅读
  7. 腾讯云主机Ubuntu22.04安装Odoo17

    2024-02-22 13:04:01       30 阅读