1171: 【入门】数字交换
内存限制:16 MB 时间限制:1.000 S
评测方式:文本比较 命题人:外部导入
提交:922 解决:280
题解
题目描述
有一组数,共N个。编一程序交换这组数中任意指定的两段(两段不重合,且这两段的数字个数一样)。
输入
共四行,
第一行一个整数N(N≤20);
第二行N个由空格分开的整数,表示这组数;
第三行两个空格分开的整数,表示要交换的其中一段的左右端点编号;
第四行两个空格分开的整数,表示要交换的其中另一段的左右端点的编号。
输出
一行N个整数,用空格隔开,表示交换后的结果。
样例输入 复制
16
3 6 11 45 23 70 67 34 26 89 90 15 56 50 20 10
3 5
13 15
样例输出 复制
3 6 56 50 20 70 67 34 26 89 90 15 11 45 23 10
来源/分类
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[30]={},s1,e1,s2,e2;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cin>>s1>>e1>>s2>>e2;
for(int i=s1,j=s2;i<=e1;i++,j++){
swap(a[i],a[j]);
}
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}