天天看點

對1001. A+B Format (20)的描述

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:調試的過程中,逗号後面還存在負數
對1001. A+B Format (20)的描述
#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:輸出正數時,位數少了許多,有些零不見了
對1001. A+B Format (20)的描述
#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 在不足三位數時補上零

PAT的截圖

對1001. A+B Format (20)的描述
上一篇: 第三次會議