实验8-1-7 数组循环右移 (20 分)

#include <stdio.h>
#define MAXN 10

void ArrayShift(int a[], int n, int m);

int main()
{
    int a[MAXN], n, m;
    int i;

    scanf("%d %d", &n, &m);
    for (i = 0; i < n; i++) scanf("%d", &a[i]);

    ArrayShift(a, n, m);

    for (i = 0; i < n; i++) {
        if (i != 0) printf(" ");
        printf("%d", a[i]);
    }
    printf("\n");

    system("pause");
    return 0;
}

/* 你的代码将被嵌在这里 */
void ArrayShift(int a[], int n, int m) {
    int b[MAXN], i;
    if (m > n)
        m %= n;
    for (i = 0; i < m; i++)
        b[i] = a[n - m + i];
    for (i = m; i < n; i++)
        b[i] = a[i - m];
    for (i = 0; i < n; i++)
        a[i] = b[i];
}

 

posted @ 2022-03-06 09:42  JamesGordan  阅读(90)  评论(0)    收藏  举报