c语言改错 哪错了怎么改

数组循环后移:输入 2 个正整数 n(0<n<=10)和 m(m≥0),然后输入 n 个整数存入数组a 中,将每个整数循环向右移 m 个位置,即将最后 m 个数循环移至最前面的 m 个位置,最后输出移位后的 n 个整数。自定义函数 void mov(int a[], int n, int m)实现循环右移

img

第10行,&p++改成p++
第26行和27行两个for循环之间加一句tmp=a[n-1];
第31行改成a[0]=temp;
如下图所示:

img

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];
     }

}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632