若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

3376: 数组奇偶操作

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,433

题目描述

给你一个有n个整数的序列,a1,a2,a3,….an(下标从1开始)。
现在进行下列操作,将下标为奇数的元素按照升序排列,下标为偶数的元素按照降序排列,然后输出。
比如,给你n=8,序列为 2 6 7 1 3 8 9 4。
则下标为奇数的元素有2 7 3 9,排序后为2 3 7 9。
下标为偶数的元素有6 1 8 4,排序后为8 6 4 1。
则输出为 2 8 3 6 7 4 9 1

输入

输入数据包含多组。每一组测试数据的第一行为一个整数n(n<1000),表示序列的个数,第二行有以空格隔开的n个整数a1,a2,a3,…an。输入数据以n=0结束

输出

按要求输出,每一个序列占一行,每两个元素之间用空格隔开(每一行最后不应包含空格)。

样例输入

8
2 6 7 1 3 8 9 4
0

样例输出

2 8 3 6 7 4 9 1

参考代码

#include<stdio.h>
int main() 
{
    int n,b,c,d,e;
    c=0;
    while(scanf("%d",&n)!=EOF) 
    {
        if(n==0)
              break; else 
        {
            int a[n];
            for (b=1;b<=n;b++)
                    scanf("%d",&a[b]);
            for (b=1;b<=n;b=b+2) 
            {
                for (c=b;c<=n;c=c+2) 
                {
                    if(a[c]<a[b]) 
                    {
                        d=a[b];
                        a[b]=a[c];
                        a[c]=d;
                    }
                }
            }
            for (b=2;b<=n;b=b+2) 
            {
                for (c=b;c<=n;c=c+2) 
                {
                    if(a[c]>a[b]) 
                    {
                        d=a[b];
                        a[b]=a[c];
                        a[c]=d;
                    }
                }
            }
            for (b=1;b<=n;b++)
                printf("%d ",a[b]);
            printf("n");
        }}
return 0;
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Skip 原站点 Dreams孤独患者
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist