两数相加,结果每三位添加一个逗号。一开始没有注意到%03d的问题,因为有某些数据逗号分割后高位带0,因此需要用0来补充空位。
1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 int main(){ 5 int a,b; 6 scanf("%d%d",&a,&b); 7 int sum=a+b; 8 if(sum<0){ 9 printf("-"); 10 sum=-sum; 11 } 12 if(sum<1000) 13 printf("%d",sum); 14 if(sum>=1000&&sum<1000000) 15 printf("%d,%03d",sum/1000,sum%1000); 16 if(sum>=1000000&&sum<10000000) 17 printf("%d,%03d,%03d",sum/1000000,(sum%1000000)/1000,sum%1000); 18 return 0; 19 }
另解:使用字符串数组string:
1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 int main(){ 5 int a,b; 6 cin>>a>>b; 7 string s=to_string(a+b); 8 int len=s.length(); 9 for(int i=0;i<len;i++){ 10 cout<<s[i]; 11 if(s[i]=='-') continue; 12 if((i+1)%3==len%3 && i!=len-1) cout<<","; 13 } 14 return 0; 15 }