自测-3 数组元素循环右移问题

输入样例:

6 2
1 2 3 4 5 6

输出样例:

5 6 1 2 3 4
#include <stdio.h>
#include <math.h>
int main()
{
    int N = 0,M = 0, i = 0;
    int arr[200];
    scanf("%d %d",&N, &M);
    // 边界判断
    if(N <= 0 || N > 100 || M < 0){
        return 0;
    }
    // 获取初始列表
    for(; i < N; i++){
        scanf("%d",&arr[i]);    
    }
    // 若右移超过长度,则循环移动
    M = M % N;
    // 先输出右移后后面还剩下的长度
    for(i = N - M; i < N; i++){
        printf("%d ", arr[i]);
    }
    // 再输出右移后左边的部分
    for(i = 0; i < N - M - 1; i++){
        printf("%d ", arr[i]);    
    }
    printf("%d", arr[i]);


    return 0;
}
原文地址:https://www.cnblogs.com/baichangfu/p/7153568.html