#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
void fun(int *p,int n,int k)
{
int temp;
int i;
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--;//接着下面循环移动
}
}
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--;
}
}
}
int main()
{
int a[]={1,2,3,4,5};
int i;
fun(a,5,-2);
for(i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
}
数组循环移位k>0或者k<0
最新推荐文章于 2022-04-25 19:05:28 发布