//将数组元素向前移动k位
//例:0 1 2 3 4 5 6 7 8 9
//out: 3 4 5 6 7 8 9 0 1 2
/思想:每取前面第一个数,将数组元素整体后移,再将取出来的元素放到最后一个元素的位置上/
#include<stdio.h>
#include<stdlib.h>
#define N 10
void Move(int a[],int k)
{
int i,t,x,j;
for(t=0;t<k;t++){
i=0;
x=a[i];//暂存数组第一个元素的值
for(;i<N-1;i++){
a[i]=a[i+1];//移动数组其余元素
}
a[i]=x;//i始终指向数组最后一个元素的位置,并替换新值
}
//输出
for(i=0;i<N;i++){
printf("%d",a[i]);
}
}
int main()
{
int a[N]={0,1,2,3,4,5,6,7,8,9};
int k;
printf("请输入要向前移动的位数:");
scanf("%d",&k);
Move(a,k);
return 0;
}