博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1004 解题报告
阅读量:6413 次
发布时间:2019-06-23

本文共 605 字,大约阅读时间需要 2 分钟。

1.题目描述:

2.解题过程

这个题目咋一看很简单,虽然最终要解出来的确也不难,但是还是稍微有些小把戏在里面,其中最大的把戏就是float 输入的精度问题,比如,一种最简单最直观的的解题方案如下:

#include 
#include 
 
int main()
{
int sum = 0;
float cb_this_month;
for(int i=0;i<12;++i)
{
scanf("%f",&cb_this_month);
// printf("%f\n",cb_this_month );
sum += (int)(cb_this_month*100);
}
 
float average = ((int)(sum/12.0+0.5))/100.0;
printf("$%.2f", average);
 
return 0;
}

上面的代码看似没有问题,实际问题蛮大,若将程序中注释掉的调试代码加上,可以明显看到,输入的数和实际存入的数是不一样的,如下图:

这将导致最后的结果不准确,在online judge这种死抠的系统里面,我想肯定是过不了的,但是没想到确实过得了,估计这就是传说中的水题吧。我想这道题的彻底解决方案应该是将输入当字符串存进来。

转载于:https://www.cnblogs.com/obama/p/3211771.html

你可能感兴趣的文章
每个人都应该了解的金融小知识 -- 利率计算 (含一道码农面试题)
查看>>
解决html中input的placeholder的颜色,点击时消失,input点击时样式的问题
查看>>
android 关于先登录成功后再进入目标界面的思考
查看>>
基于Redis的分布式锁实现
查看>>
Lifecycle 流程分析
查看>>
我对SOLID的理解
查看>>
chrome下点击文件选择框速度很慢
查看>>
你真的了解git吗?
查看>>
IcceCream 的Linux软件清单
查看>>
[swift 进阶]读书笔记-第八章:错误处理 C8P4 将错误桥接到Objective-C
查看>>
Linux 文件传输
查看>>
字符串、列表、字典
查看>>
网站记录
查看>>
你好,promise
查看>>
简单的顺序表
查看>>
IOS组件化方案总结
查看>>
HTML5的新特性概述(上)
查看>>
redis原理
查看>>
从零开始学习测试
查看>>
关于小程序基础库
查看>>