Description
编写程序,将一维数组A(下标从1开始)中的元素循环右移k位,要求只用一个元素大小的附加存储。
Input
第一行输入一维数组A的长度n和循环位移位数k(0<n<100;0<k<100),用空格分开。
第二行输入n个元素。
Output
输出循环右移k位后的一维数组。
-
Sample Input
6 3 1 2 3 4 5 6
-
Sample Output
4 5 6 1 2 3
#include<stdio.h>
int main(){
int n, k, i, tmp;
scanf("%d%d", &n, &k);
int arr[100];
for(i = 0; i < n; i++){
scanf("%d", &arr[i]);
}
while(k--){
tmp = arr[n-1];
for(i = n-1; i > 0; i--){
arr[i] = arr[i-1];
}
arr[0] = tmp;
}
for(i = 0; i < n; i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}