此题数据规模不大,可将a,b定义为int,直接将其相加即可。此题的难度在于要按照规定的格式输出sum,主要有两种思路。1,将sum从个位起,按位存放到字符数组中,每存3位,加上一个逗号,然后将字符数组从高位输出;2,将sum从低位起,每3位存放到整形数组中,然后从高位输出,输出注意补0和逗号。
AC代码如下,采用第二种思路
#include <iostream>
using namespace std;
int main(){
int a,b,sum;
int k=0,num[10];
scanf("%d%d",&a,&b);
sum=a+b;
//若sum为负数,输出负号并取其绝对值
if(sum<0){
sum=0-sum;
printf("-");
}
//将和每三位一组暂存于数组num[]中
while(sum/1000){
num[k]=sum%1000;
sum=sum/1000;
k++;
}
printf("%d",sum);
for(int i=k-1;i>=0;i--){
printf(",%03d",num[i]);
}
}