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;
}
思路哪里错了?
