#include <iostream> using namespace std; void func(int *p, int n, int k); void main() { int a[]={1,2,3,4,5}; int i; func(a,5,2); for(i=0;i<5;i++) cout<<a[i]<<" "; cout<<endl; } void func(int *p ,int n, int k) { int temp; int i; k=k%n; //n是总长度,k是移位位数,实际移位k%n if(k>=0)//右移 { while(k) { temp=p[n-1]; for(i=n-1;i>0;i--) p[i]=p[i-1]; p[0]=temp; k--; //临时数组存放最后一个数据,然后依次后移,k--; } } else if(k<0) { k=k*(-1);//左移 while(k) { temp=p[0]; for(i=1;i<n;i++) p[i-1]=p[i]; p[n-1]=temp; k--; //临时数组存放第一个数据 } } }
相关文章: