原理还是非常简单的: 将前面的数组元素翻转, 再将后面的数组元素翻转, 最后将整个数组元素翻转
- #include <iostream>
- #define N 100
- using namespace std;
- void Reverse(int l,int r,int* array)
- {
- double mid=(l+r)/2.0;
- for(int i=l;i<mid;++i)
- {
- array[i]=array[r+l-i]+array[i];
- array[r+l-i]=array[i]-array[r+l-i];
- array[i]=array[i]-array[r+l-i];
- }
- }
- int main()
- {
- int array[N],a,b;
- cout<<"数组长度:";
- cin>>a;
- cout<<"请输入数组元素:";
- for(int i=0;i<a;++i)
- cin>>array[i];
- cout<<"循环开始的位置:";
- cin>>b;
- Reverse(0,a-b-1,array);
- Reverse(a-b,a-1,array);
- Reverse(0,a-1,array);
- for(int i=0;i<a;i++)
- cout<<*(array+i)<<" ";
- return 0;
- }
来源: http://www.bubuko.com/infodetail-2617757.html