问题标题: 酷町堂:5127 数组变换

0
0
已解决
杜果
杜果
中级守护
中级守护

题目链接: 酷町堂:5127

5127   数组变换

经验值:1200 时间限制:2000毫秒 内存限制:128MB

题目描述 De**ion

输入一个数组,下标从1开始,总长度2*n,把前半部分放入1 3 5的位置上…后半部分放到2 4 6…的位置上,进行两次这样的操作,输出交换后的序列。

输入描述 Input De**ion

输入2行
第1行输入一个正整数n
第2行输入2*n个正整数,数字之间用空格隔开

输出描述 Output De**ion

输出一行,输出经过2次操作之后的序列,数字之间用空格隔开;

样例输入 Sample Input

4 1 2 3 4 5 6 7 8

样例输出 Sample Output

1 3 5 7 2 4 6 8

数据范围及提示 Data Size & Hint

n<=50,
数组里的每个元素的值不超过1000

代码:

#include<iostream>
using namespace std;
int n,a[105],b[105];

void ex(){
    int c=0;
    for(int i=1;i<=n;i++){
        b[c+i]=a[i];
        c++;
    }
    for(int i=n+1;i<=2*n;i++){
        b[i-c]=a[i];
        c--;
    }
    for(int i=1;i<=2*n;i++){
        a[i]=b[i];
    }
}

int main(){
    cin>>n;
    for(int i=1;i<=2*n;i++){
        cin>>a[i];
    }
    ex();
    ex();
    for(int i=1;i<=2*n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
}

思路哪里错了?


0
0
我要回答