数组循环后移:输入 2 个正整数 n(0<n<=10)和 m(m≥0),然后输入 n 个整数存入数组a 中,将每个整数循环向右移 m 个位置,即将最后 m 个数循环移至最前面的 m 个位置,最后输出移位后的 n 个整数。自定义函数 void mov(int a[], int n, int m)实现循环右移
第10行,&p++改成p++
第26行和27行两个for循环之间加一句tmp=a[n-1];
第31行改成a[0]=temp;
如下图所示:
temp = a[n - 1];
for(i =m - 1; i >= 1; i--)
a[i] = a[i - 1];
a[0] = temp;
只有这个move函数有问题,代码如下,试下!
void move(int a[],int n,int m)
{
int i,j,b[10];
for(i=0;i<n;i++)
b[i]=a[i];
for(j=0;j<n;j++)
{
if(j+m>=n)
a[j+m-n]=b[j];
else
a[j+m]=b[j];
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!