题目描述
解题思路
给两个数字做差,如果结果超过3位,应从最低位起,按每三位加“,”。
参考代码
#include <stdio.h>
#include <string.h>
int main()
{
__int64 a,b,c,v;
char s[20];
while (~scanf("%I64d%I64d",&a,&b)){
memset(s,0,sizeof(s));
int t = 0,n = 0;
c = a - b;//先做减法把结果存成整型
v = c >=0 ? c:-c;
while (v){
s[n++] = ((v%10)+'0');//把各个位存成字符型
t++;
if (t%3 == 0 && v/10)//每三位加一个“,” ,如果是在最前面就不用加了
s[n++] = ',';
v /= 10;
}
if (c < 0)
putchar('-');
if (c != 0)
for (int i = n-1;i >= 0;--i )//倒序输出
putchar(s[i]);
else
putchar('0');
putchar('\n');
}
return 0;
}