你不去质问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;
}
更改了