伊牡丹江市春市网站建设,网站打开wordpress,网站搭建源码,google seo整站优化6-6 数组循环右移
分数 20 全屏浏览题目 切换布局
作者 张泳
单位 浙大城市学院
本题要求实现一个对数组进行循环右移的简单函数#xff1a;一个数组a中存有n#xff08;0#xff09;个整数#xff0c;将每个整数循环向右移m#xff08;≥0#xff09;个位置一个数组a中存有n0个整数将每个整数循环向右移m≥0个位置即将a中的数据由a0a1⋯an−1变换为an−m⋯an−1a0a1⋯an−m−1最后m个数循环移至最前面的m个位置。
函数接口定义
void ArrayShift( int a[], int n, int m );
其中a[]是用户传入的数组n是数组的大小m是右移的位数。函数ArrayShift须将循环右移后的数组仍然存在a[]中。
裁判测试程序样例
#include stdio.h
#define MAXN 10void 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);return 0;
}/* 你的代码将被嵌在这里 */
输入样例
6 2
1 2 3 4 5 6输出样例
5 6 1 2 3 4代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
参考答案
void ArrayShift( int a[], int n, int m ){m%n;int b[n];for(int i0;in;i){b[i]a[(n-mi)%n];//循环右移连招 ①m%n; ②a[(n-mi)%n];}for(int i0;in;i){a[i]b[i];}
}
循环右移连招 ①m%n; ②a[(n-mi)%n];