编程题1001.A+B Format (20)
2016-01-29 00:39
288 查看
GitHub/object-oriented
本题的解题要点在于输出格式。由于输出要求每三位数字一逗号,且最多存在两个逗号,所以可将逗号分隔的三个部分取为三组数d、e、f,分别输出,中间用逗号隔开。其中存在三种输出情况,需注意每个区间数的位数规定。
共提交6次,其中3次是提交着玩的(请忽视)。
第一次提交结果部分正确,重新理清思路,发现问题在于我忽视了负数情形,将判断条件
第二次提交结果编译错误,猜测问题在于头文件,尝试着将
第三次提交结果答案正确。
尽管最终答案正确,但仍存在一些疑惑,
结合上图与PAT的错误分析之后发现:类似于
【解题思路】
本题的解题要点在于输出格式。由于输出要求每三位数字一逗号,且最多存在两个逗号,所以可将逗号分隔的三个部分取为三组数d、e、f,分别输出,中间用逗号隔开。其中存在三种输出情况,需注意每个区间数的位数规定。
【编码过程】
共提交6次,其中3次是提交着玩的(请忽视)。
第一次提交结果部分正确,重新理清思路,发现问题在于我忽视了负数情形,将判断条件
d>0和
e>0改为了
d!=0和
e!=0,此处还考虑到一旦输入数字为负,则d、e、f全为负数,最后的输出结果就会含有多个负号,于是又引入
<cmath>函数库,在输出部分规定正负。
第二次提交结果编译错误,猜测问题在于头文件,尝试着将
<cmath>改为
<math.h>并将编译器改为C提交。
第三次提交结果答案正确。
尽管最终答案正确,但仍存在一些疑惑,
<cmath>是标准的C++库函数,为什么代码在C++编译器条件下提交会显示编译错误?我在这个网站发现了和我类似的问题及其解答:
结合上图与PAT的错误分析之后发现:类似于
pow()的,
abs()在
<camth>中也没有定义,要在C++中使用绝对值函数用法应该是
std::abs()或者
#include<cmath>using namespace std;int main(){abs();return 0;}(该知识点似乎与命名空间相关,感觉自己的解答还不够正确,可能需要C++后面学到命名空间了才能理解)
【代码变更历史】
相关文章推荐
- JAVA编译时与运行时
- java数组实现栈
- Java初学者1-Java环境及IDE
- 【Java SE】————如何做到跨平台性的?
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- mac 解决 eclipse 创建 android 项目出现 Errors occurred during the build. Errors running builder 'Android Res
- struts2类型转换中的错误处理
- INSTALL CGAL on ubuntu and use it in qt
- Java比较002
- Java比较001
- 【Java SE】————JDK、JRE、JVM简介
- 从今天开始学编程
- 很好的单片机学习心得,值得任何编程读完
- C/C++区别
- 学习C字符串表示和字符串I/O(CprimerPlus11.1)的心得
- 【OneNote】插入语法高亮的代码
- 编程思想之封装
- java类的访问权限
- Python环境搭建之OpenCV的步骤方法
- YII CLinkPager分页类扩展增加显示共多少页