Advertisement

数组循环右移(习题8-3, 20分)

阅读量:

请完成对数组进行循环右移功能的实现。给定一个包含nn > 0)个整数的一维数组A,请将其数据通过轮换操作转换为新序列。具体而言,在不考虑索引越界的情况下,在新序列中前半部分放置原序列末尾连续m个元素,在后半部分则依次排列原序列其余元素。(其中新序列前半部分由原序列末尾连续取值构成)。其中新序列前半部分由原序列末尾连续取值构成

函数接口定义:

复制代码
    int ArrayShift( int a[], int n, int m );

其中a[]表示由用户提供的一个整型数组;n代表该数组元素的数量;m为要进行循环右移的操作次数。该函数需确保在执行完循环右移操作后仍能访问到原始存储空间。

裁判测试程序样例:

复制代码
    #include <stdio.h>
    #define MAXN 10
    
    int 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,

全部评论 (0)

还没有任何评论哟~