Problem Description
乐乐今天刚学减法,老师布置了好多关于减法的家庭作业题。乐乐可不想把时间都浪费在这重复机械的题目上。你能帮帮她吗?
Input
输入数据由多组数据组成。每组数据只有一行,包含两个整数,用空格分开。
Output
对于每组数据,输出一行,包含两个整数的差。如果数字超过3位,应从最低位起,按每三位分组。 题目所有输入输出保证在[-2^31, 2^31-1]范围内。
Sample Input
2000 1000
Sample Output
1,000
#include <stdio.h>
int main()
{
int a,b,c,t1,t2,flag=0;
scanf("%d %d",&a,&b);
c=a-b;
if(c<0){
c=-c;
flag=1;
}
if(c<1000)
{
if(flag==1){
printf("-");
}
printf("%d\n",c);
}
else if (c>=1000&&c<1000000)
{
if(flag==1){
printf("-");
}
t1=c/1000;
printf("%d",t1);
printf(",");
t2=c%1000;
printf("%03d\n",t2);
}
else if (c>=1000000&&c<1000000000)
{
if(flag==1){
printf("-");
}
t1=c/1000000;
printf("%d,",t1);
c%=1000000;
t1=c/1000;
printf("%03d,",t1);
t1%1000;
printf("%03d\n",t1);
}
else
{
if(flag==1){
printf("-");
}
t1=c/1000000000;
printf("%d,",t1);
c%=1000000000;
t1=c/1000000;
printf("%03d,",t1);
c%=1000000;
t1=c/1000;
printf("%03d,",t1);
c%=1000;
printf("%03d\n",c);
}
return 0;
}
更简便的方法!!!
#include <stdio.h>
#include <string.h>
int main()
{
int a,b,c,flag=0,i,t;
char arr[20];
while (scanf("%d %d",&a,&b)!=EOF)
{
c=a-b;
if (c==0)
{
printf("0\n");
}
else{
if (c<0)
{
c=-c;
flag=1;
}
for (i=0;c>0;i++)
{
arr[i]=c%10+'0';
c/=10;
}
arr[i]='\0';
t=i;
if (flag==1)
{
printf("-");
}
for (i=t-1;i>=0;i--)
{
printf("%c",arr[i]);
if(i%3==0&&i!=0){
printf(",");
}
}
printf("\n");
flag=0;
}
}
return 0;
}