Description

给定一个长度为n(1<=n<=200)的数列,将这个数列按如下规则排列。
最小数,最大数,次小数,次大数,......

Input

第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。

Output

输出一行,按从题目要求的顺序输出排序后的数列。

Sample Input

10
1 2 4 3 5 8 7 6 10 9

Sample Output

1 10 2 9 3 8 4 7 5 6

题目很简单,我的方法是先排序再错位输出

#include<stdio.h>
/**************函数区**************************/
void od(int a[],int n)//排序函数
{
    int i,j,t;
    for(i=0; i<n; i++)
        for(j=i+1; j<n; j++)
        {
            if(a[i]<a[j])
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
}
/****************输入区************************/
int main()
{
    int n,i,j;
    int a[205];
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        scanf("%d",&a[i]);
    }
/*****************输出区***********************/
    od(a,n);
    if(n==1)
        printf("%d",a[0]);
    else if(n%2==0)
    {
        for(i=0, j=n-1; i<j-1; i++, j--)//错位输出
        {
            printf("%d %d ",a[j],a[i]);
        }
        printf("%d %d",a[j],a[i]);
    }
    else if(n%2!=0)
    {
        for(i=0, j=n-1; i<j-1; i++, j--)
        {
            printf("%d %d ",a[j],a[i]);
        }
        printf("%d",a[j]);
    }
/****************************************/
}


手贱打上了abs()函数怎么交都是错的= =;

测试数据

input

1

1

output

1

input

3

1 2 3

output

1 3 2

input

3

1 -2 3

output

-2 3 1