#include<stdio.h>
#include<math.h>
int main(){
int n,j,i;
double a[101];
while(scanf("%d",&n)!=EOF){
a[0]=0; //a[0]必须要有初值(用于确定数组a的地址)才能往数组里继续存数
if(n==0)
break;
for(i=1;i<=n;i++)
scanf("%lf",&a[i]); //double型输入用%lf
for(i=2;i<=n;i++) //直接插入排序
if(fabs(a[i])<fabs(a[i-1])){
a[0]=a[i];
a[i]=a[i-1];
for(j=i-2;fabs(a[0])<fabs(a[j]);--j)
a[j+1]=a[j];
a[j+1]=a[0];
}
for(i=n;i>=1;i--){ //i--不是i++
if(i>1)
printf("%.0f ",a[i]); //double型输出用%f
else
printf("%.0f\n",a[i]);
}
}
return 0;
}
【转】网上快排和冒泡法参考:http://www.cnblogs.com/xinmenghuairi/archive/2012/05/25/2517383.html
网友评论