第二次作业 编程题 PAT 1001A+B Format

> Github的object-oriented仓库:[1001.A+BFormat(20)](https://github.com/Olivia1011/object-oriented/tree/master/1001.A+BFormat(20))

1、解题的思路过程

  • 在之前学习C语言时曾经碰到过类似的将数字转换成字符输出的情况,这道题目要求输出的数字每三个间增加一个逗号,我就想到将每一位上的数字都转换成字符,并在每输出三个字符后输出一个逗号。

  • 计算了一下最大是7位数加上两个逗号是九位,于是我开了s[10]。一开始我写了一个判断,将和为负数的都转换成正数并用了变量k做了记录方便为s[10]赋值和之后的输出。

  • 用一个循环语句给数组s[10]赋值,因为平时练习不够,对代码编写也不够熟练,这段循环语句经过不断的调试并配合上网查找资料才编写完成。

  • 在编写输出程序时,考虑到第一个逗号也会输出,于是用 s[i-1]==',' 这个语句解决了问题。

  • 又考虑到a b之和为0的情况,于是我又加上了一个判断语句。(这里发现我的思维严密性实在不够,在平时敲代码中也经常漏考虑情况)以上就是我编写这道题的完整思路。

2、编码过程中调试与上线测试(提交代码)后的bug发现与修改过程

  • 在调试过程中我发现在某些情况中数的最前面会多输出一个逗号,这个bug我将for循环语句修改为 for(i-=1+(s[i-1]==',');i>=0;i--) 来解决。

  • 在线上提交过程中结果还是显示有一个点错误,看我的代码可是一直没有发现bug在哪。问了同学,才知道是我在考虑a b之和时没有考虑为0的情况,在a b和为0时是没有输出的。然后我在添加了0的情况再提交终于显示了答案正确,就因为这个bug我前后花费了两个小时的时间,真的觉得自己太粗心了。

3、PAT上的提交记录列表截图

原文地址:https://www.cnblogs.com/Olivia1011/p/5173672.html