题目:将abcdefg变为defgabc,转换位置自己定
方法:先将abc倒序,再将defg倒序,再将总的串倒序,这样就可以了
实现一(vector):
#include <iostream>
#include <vector>
using namespace std;
int reverse(vector<int> &vec,int start,int end){
int tmp;
while(end>start){
tmp=vec[start];
vec[start]=vec[end];
vec[end]=tmp;
end--;
start++;
}
return 0;
}
int main(){
// char a[7]={'1','2','3','4','5','6','7'};
// int i=0;
// int n=7;
vector<int> vec;
int i;
while(cin>>i){
vec.push_back(i);
}
cin.clear();
cin.sync();
int n=vec.size();
cout<<"请您输入想要转向的位置:";
int p;
cin>>p;
cout<<endl;
reverse(vec,0,p-1);
reverse(vec,p,n-1);
reverse(vec,0,n-1);
cout<<"转向后的序列:";
for(vector<int>::iterator j=vec.begin();j!=vec.end();j++)
cout<<*j;
cout<<endl;
return 0;
}
实现二(数组):
#include <iostream>
using namespace std;
int reverse(char* a,int start,int end){
int tmp;
while(end>start){
tmp=a[start];
a[start]=a[end];
a[end]=tmp;
end--;
start++;
}
return 0;
}
int main(){
char a[7]={'1','2','3','4','5','6','7'};
int i=0;
int n=7;
cin>>i;
cout<<endl;
reverse(a,0,i-1);
reverse(a,i,n-1);
reverse(a,0,n-1);
for(int j=0;j<7;j++)
cout<<a[j];
return 0;
}