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 Specification:
Each input file contains one test case. Each case contains a pair of integers a and b where −10^6
≤a,b≤10^6 . The numbers are separated by a space.
Output Specification:
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.
Sample Input:
-1000000 9
Sample Output:
-999,991
简单的数字、字符串转化问题
1、运用了C语言中sprintf(s,"%d",sum)函数,将sum整数型以字符数组型写入到s中。
2、打印‘,’,i为遍历下标,字符串长度len,则len - 1 - i为从个位开始到第i位的位数;i < len - 1,防止’,'在数前数尾打印;s[i] != '-'避免在负号后打印。
注意:’,’ 是从个位开始计数,每三位打印一个’,’
我的代码
#include<cstdio>
#include<cstring>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
int sum = a + b;
char s[10];
sprintf(s,"%d",sum);
int len = strlen(s);
for (int i = 0 ;i < len ;i++)
{
printf("%c",s[i]);
if ((len - 1 - i) % 3 == 0 && i < len - 1 && s[i] != '-')
printf(",");
}
return 0;
}