#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--;
//临时数组存放第一个数据
        }
    }
}
View Code

相关文章:

  • 2022-12-23
  • 2020-04-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-04
猜你喜欢
  • 2021-10-12
  • 2021-06-23
  • 2021-11-11
  • 2021-10-05
  • 2022-01-23
  • 2022-12-23
相关资源
相似解决方案