Github倉庫的連結
https://github.com/deepYY/object-oriented/blob/master/A-B-Format/A.B.Format.c
解題思路:
- 輸入a,b,并求a與b 之和c
- 将c分為沒有逗号和有1個逗号和有兩個逗号
- 用除和求餘的方法求c的各個三位數,在各個三位數之間加上逗号并輸出
bug的發現和修改過程:
- 問題1:調試的過程中,逗号後面還存在負數
#include<stdio.h>
int main()
{
int a, b, c;
scanf("%d %d",&a,&b);
c = a + b;
if (c >= 1000000 || c <= -1000000) {printf("%d,%d,%d", c / 1000000, (c / 1000) % 1000, c % 1000);}
else if (c >= 1000 || c <= -1000) {printf("%d,%d", c / 1000, c % 1000); }
else {printf("%d", c);}
return 0;
}
- 修改:c為負數取餘時餘數也為負數,我就修改先将c取正在輸出數之前加個負号
- 問題2:輸出正數時,位數少了許多,有些零不見了
#include<stdio.h>
int main()
{
int a, b, c;
scanf("%d %d",&a,&b);
c = a + b;
if (c < 0){
printf("-");
c = -c; }
if (c >= 1000000) {printf("%d,%d,%d", c / 1000000, (c / 1000) % 1000, c % 1000);}
else if (c >= 1000) {printf("%d,%d", c / 1000, c % 1000); }
else {printf("%d", c);}
return 0;
}
- 修改:輸出時加上%03d 在不足三位數時補上零