#include<cstdio>
#include<cstring>
#include<stack>
using namespace std;
int main(){
int a,b,sum,i,count=0;//i用来遍历数组,count累计输出的有效数字的个数
char res[10];//结果字符串
stack<char> temp;//栈用来逆序遍历字符串添加逗号
scanf("%d%d",&a,&b);//输出A,B两个数
sum=a+b;
sprintf(res,"%d",sum);//将A+B的和保存在res字符串中
int len= sum>0? strlen(res):strlen(res)-1;//计算和的位数
if(len<4) {printf("%s",res);return 0;}//和的位数小于4,直接输出
for(int i=0;res[i]!='\0';i++){//和的位数大于4
if(res[i]=='-') printf("%c",res[i]);//有负号,先输出
else temp.push(res[i]);//将和从高位到低位保存在栈中
}
for(i=0;!temp.empty();i++){//出栈
res[i]=temp.top();
temp.pop();
count++;
if(count%3==0) res[++i]=',';//从低位到高位每遇到三位数字就加一个逗号
}
if(res[--i]==',') i--;//如果末尾是逗号,要删除
for(int j=i;j>=0;j--){//从高位到低位输出数字部分
printf("%c",res[j]);
}
return 0;
}
PAT A1001 A+B Format
最新推荐文章于 2021-09-16 22:54:05 发布