不解释.
#include<stdio.h>
#include<math.h>
int z[1007];
int main()
{
int m,flag;
while(scanf("%d",&m)&&m!=0)
{
for(int a=0;a<m;a++)
scanf("%d",&z[a]);
for(int b=0;b<m-1;b++)
for(int c=0;c<m-1-b;c++)
if(fabs(z[c])<fabs(z[c+1]))
{
flag=z[c];
z[c]=z[c+1];
z[c+1]=flag;
}
for(int d=0;d<m-1;d++)
printf("%d ",z[d]);
printf("%d\n",z[m-1]);
}
return 0;
}