对长度为n的数组,进行循环向右移动m位,n和m在主函数中由键盘输入
#include<stdio.h>
#define N 20
void arraymove(int a[],int n,int m);
int main()
{
int a[N];
int n,m,i,j;
printf("请输入数组长度n和移动位数m:\n");
scanf("%d%d\n",&n,&m);
for(i=0;i<n;i++) //输入数组元素
{
scanf("%d",&a[i]);
}
arraymove(a,n,m);
printf("输出为:\n");
for(j=0;j<n;j++)
{
printf("%d ",a[j]);
}
printf("\n");
return 0;
}
void arraymove(int a[],int n,int m)
{
int temp[N]; //创建临时数组储存数组元素
int i,j;
for(i=0;i<n;i++)
{
temp[i]=a[i];
}
for(j=0;j<n;j++)
{
a[(j+m)%n]=temp[j];
}
}