printf里面你有个空格,然后又输出一个空格,这就是两个空格了
最后的输出格式有问题吧,然后那个绝对值可以用 abs()函数,修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[101],n,i,j,t;
while (scanf("%d", &n), n)
{
for (i = 0;i < n; i++)
scanf("%d", &a[i]);
for (i = n - 1; i > 0; i--)
{
for (j = 0;j < i;j++)
{
if (abs(a[j]) < abs(a[j+1]))
t=a[j],a[j]=a[j+1],a[j+1]=t;
}
}
for (i = 0;i < n; i++)
printf(i == 0 ? "%d" : " %d", a[i]);
printf("\n");
}
return 0;
}
多输出了一个空格,所以格式有问题,删掉就行了,就是最后一个for那里
最后a[c]的输出把%d后面的空格去掉就行了