您的位置:首页 > 编程语言

编程题1001.A+B Format (20)

2016-01-29 00:39 288 查看
GitHub/object-oriented

【解题思路】


本题的解题要点在于输出格式。由于输出要求每三位数字一逗号,且最多存在两个逗号,所以可将逗号分隔的三个部分取为三组数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++后面学到命名空间了才能理解)




【代码变更历史】














内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: