【练习四(扩展)程序片段编程题4. 首元素分隔(一)(片段编程)】

【问题描述】

    输入一个整数数组a,以第0元素的值为界,把小于或等于第0元素的元素排在数组下标较低位置,大于第0元素的元素排在下标较高位置,第0元素则再两元素的中间。整数均在正常范围。
【输入形式】

    输入包含两行。

    第一行输入一个整数n(n<=106),

    第二行依次输入n个整数,整数之间用空格隔开,整数的大小不超过106。

【输出形式】

    输出调换顺序后的整数数组,每两个元素之间用空格隔开。注意最后一个元素之后没有空格。
【样例输入】

10
4 11 2 6 23 1 88 34 7 8

【样例输出】

2 1 4 11 6 23 88 34 7 8

【样例说明】

输入10个数,第0元素是 4, 则将小于或等于4的元素(2, 1)按序排到左端; 4放在第2位置;将比4大的元素(11,6,23,88,34,7,8)按序排在右端;

#include  <iostream>
using  namespace  std;

int  main()
{
        int  n;
        cin  >>  n;
        int  a[n];
        for  (int  i  =  0;  i  <  n;  i++)
                cin  >>  a[i];

        int  target[n];
        int  count  =  0;
        for  (int  i  =  1;  i  <  n;  i  ++)  {
                if  (a[i]  <=  a[0])  {
                        target[count]  =  a[i];
                        count  ++;
                }
        }

        target[count++]  =  a[0];
for(int i=1;i<n;i++)
{
if(a[i]>a[0])
{
target[count]=a[i];
    count++;
}
}
 for  (int  i  =  0;  i  <  n;  i  ++)  {
                if  (i  ==  0)  {
                        cout  <<  target[i];
                }  else  {
                        cout  <<  "  "  <<  target[i];
                }
        }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值