文章
40
粉丝
607
获赞
68
访问
419.5k
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int a[1000];
int n, k,x;
cin >> n >> k;
cin >> x;
for (int i = 0;i < n;i++) {//将数组赋值
a[i] = i + 1;
}
for (int j = 0;j < k;j++) {//开始操作
rotate(a, a + x, a + n);//shift操作
reverse(a, a + n / 2);//flip操作。
}
for (int k = 0;k < n;k++) {//开始输出数组,关注输出格式,最后一个数字后没有空格
if (k != n - 1) {
cout << a[k] << " ";
}
else {
cout << a[k];
}
}
cout << endl;
return 0;
}
1 | 2 | 3 | 4 | 5 | 6 |
这个数组下标为0~5,里面的值为1~6即 :
a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; a[5]=6;
(下面两个函数都会对这个数组使用一次,把这个数组叫做 样例数组)
rotate函数需要三个参数 rotate(开始位置,中间位置,结束位置)
若对上面样例数组使用ratate(a,a+4,a+6)后数组就会变成如下:
5 | 6 | 1 | 2 | 3 | 4 |
reverse函数需要两个参数,reverse(开始位置,结束位置)
若对上面样例数组使用re...
登录后发布评论
函数用的很溜