PATA1001题解
#include<iostream> #include<cstring> #include<stdio.h> using namespace std; void change(int num) { char str[20]; int flag,k,mod = 0,len; if(num < 0) { flag = 1; num = -num; } else { flag = 0; } sprintf(str,"%d",num); //将数字转换为字符串 len = strlen(str); if(flag) printf("-"); //单独处理负号 k = len % 3; //因为是按3个划分,那么模3不为0必定是多余的,可以先单独输出。 for(int i = 0;i < k; i++) { printf("%c",str[i]); } if(len > 3 && k != 0) //注意判断初始长度大于3,如果初始就只有2个数字不需要添加逗号 printf(","); for(int i = k;i < len; i++) { printf("%c",str[i]); mod++; if(mod == 3 && i != len-1) { mod = 0; printf(","); } } } int main () { int a, b; cin >> a >> b; change(a+b); }