Problem 1405 做减法. 思路 ① 计算答案,如果是负数输出“-”,同时将答案转换为正数 ② 将答案从低位开始转换成字符数组:如果已经累积了三位,并且答案前面还有位数的话,往字符串中写入“,” ③ 逆序输出字符串 笔记 字符串格式化指令:sprintf(char *str, const char *format, ...) sprintf(str, "My id is: %d", 10086)表示将“My id is: 10086”字符串存进str 可用于将数字直接转换成字符!! 代码 #include<cstdio> using namespace std; int main(){ int x1, x2, y; char ans[100]; int len, flag; while(scanf("%d%d", &x1, &x2)!=EOF){ y = x1 - x2; if(y==0){ printf("0\n"); continue; } if(y<0){ printf("-"); y = 0 - y; } len = 0; flag = 0; while(y!=0){ if(flag==3){ ans[len++] = ','; flag = 0; } ans[len++] = y%10 + '0'; flag++; y /= 10; } for(int i=len-1; i>=0; i--) printf("%c", ans[i]); printf("\n"); } return 0; }