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我前后花费了两个小时的时间,真的觉得自己太粗心了。