你不去质问printf()为什么允许输出负数?
授人以渔,不授人以鱼。
#include<stdio.h> #include<math.h> int main(int argc,char *argv[]) { int x,a[20],i=0,j=0,t; printf("请输入一个任意整数\n"); scanf("%d",&x); t=x; while(1) { if(x==0) { if(i==0) putchar('0'); break; } else { a[i++]=x%1000; x=x/1000; } } while(--i>=0) { if(j==0&&t<0) { putchar('-'); j=1; } printf("%d",abs(a[i])); if((i-1)>=0) putchar('\,'); } return 0; }更改了