面向对象程序设计第二次作业

Github地址:https://github.com/tinghaishuo/object-oriented/tree/master/1001.A%2BB%20Format%EF%BC%8820%EF%BC%89

题目:1001. A+B Format (20)

 Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than         four digits).
  • Input:Each input file contains one test case. Each case contains a pair of integers a and b where -1000000 <= a, b <= 1000000. The numbers are separated by a space.
  • Output:For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.

解题思路:

  • 输出须为三组数据由逗号分隔,则需要再定义四个数,一个数为相加后的结果,另外三个数分别表示这三组数据。
  • 本次需要用到循环结构以及需要注意printf的输出格式。
  • 对于循环体的设计,先判断输出是否需要三组数据表示,否则再进一步判断是否需要2组数据表示,若否则可直接输出结果。

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

编码过程的调试
  • 编译并无发现错误,但在运行过程中发现若输出结果为负数时,每一组数据前均会带上一个负号。885517-20160128174147785-13171714.png

  • 根据发现的错误,进行了修改,取绝对值。当和为负数时:若输出是一组数据,则可直接输出;若输出是两组数据,从左往右,第二组数据取绝对值再输出;若输出是三组数据,从左往右第二、三组数据取绝对值再输出。
  • 再次编译运行,发现无误,提交。

上线测试(提交代码)
  • 第一次:885517-20160128165346223-1496700764.png
    评测结果为0分,有点百思不得其解。看了错误,是绝对值的使用错误885517-20160128160549332-1076457562.png
    本想在绝对值的问题上进行修改,后转念一想,若先将负号输出,再对剩下的数字进行处理,更加简便。于是重新进行了修改。

  • 第二次:885517-20160128160923785-201051665.png
    第二次测评只有16分,说明仍存在一些细节上的错误。885517-20160128161024035-1967720198.png
    于是我重新找了几组数据检测,发现了一个小细节。885517-20160128161135629-2068327846.png
    由于自己的粗心大意,导致了这个错误,再次修改。

  • 第三次:885517-20160128161453504-26113.png
    终于,正确了。885517-20160128173549238-867949147.png
    885517-20160128161518785-443705331.png

小结:

1拿到一个题目后,应该从多方面想解法,不能一股脑想什么就写什么,多思考思考会想到更多更加简便的方法。
2心思要缜密。在提交前要多拿几组数据测试,避免犯不该犯的错误。
3发现错误的过程不断进行自我反省自我改正,直到全对。这个过程收益颇丰。才入门技术不足,常常犯许多错误。正视这些错误,多思考,虚心请教同学以及前辈,不断学习,取得进步。

转载于:https://www.cnblogs.com/s38455/p/5166838.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值