@PAT 题库1001 A+B Format (20 分)
题目
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
代码如下:
#include <stdio.h>
#include <string.h>
char s[100];
int main() {
int a,b;
while(scanf("%d%d",&a,&b)!=EOF){
a = a+b;
if (a < 0) {
putchar('-');
a = -a;
}
sprintf(s,"%d",a);
int n = strlen(s), m = n % 3,i = 0;
for (; i < m; ++i) {
putchar(s[i]);
}
for (; i < n; i += 3) {
if (i) {
putchar(',');
}
printf("%c%c%c",s[i],s[i + 1],s[i + 2]);
}
puts("");
return 0;
}
}
#include<stdio.h>
#include<string.h>
char s[100];
int main() {
int a,b,i;
while(scanf("%d%d",&a,&b) != EOF){
a=a+b;
if(a<0){
putchar('-');
a=-a;
}
sprintf(s,"%d",a);
int n=strlen(s);
for(i=0;i<n;i++)
{
putchar(s[i]);
if((n-i-1)%3==0 && n-i-1!=0 ) putchar(',');
}
return 0;
}
}
这一个没有编译警告。