杭电OJ-2020

2017-05-18  本文已影响22人  小可爱你要快快长大
#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

上一篇 下一篇

猜你喜欢

热点阅读