自测-3 数组元素循环右移问题(20 分)
一个数组
A
中存有
输入格式:
每个输入包含一个测试用例,第1行输入
N(1≤N≤100)
和
M(≥0)
;第2行输入
N
个整数,之间用空格分隔。
输出格式:
在一行中输出循环右移
输入样例:
6 2
1 2 3 4 5 6
输出样例:
5 6 1 2 3 4
#include <stdio.h>
int main() {
int n,m;
scanf("%d %d", &n,&m);
//至关重要的地方,如果有6个元素,移动7步,相当于移动1步
m = m % n;
int temp = n+m;
int res[temp];
for(int i=m; i<temp; ++i) {
int a;
scanf("%d", &a);
res[i] = a;
}
int tempN = n;
for(int i=0,j=tempN; i<m; ++i,++tempN) {
res[i]=res[tempN];
}
for(int i=0; i<n; ++i) {
printf("%d", res[i]);
if(i!=n-1) printf(" ");
}
return 0;
}