题目描述
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。
输入
输入数据的个数n n个整数 移动的位置m
输出
移动后的n个数
样例输入
10
1 2 3 4 5 6 7 8 9 10
2
样例输出
9 10 1 2 3 4 5 6 7 8
#include<stdio.h>
int main() {
void move(int[20], int, int);
int number[20], n, m;
int i;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &number[i]);
scanf("%d", &m);
move(number, n, m);
for (i = 0; i < n; i++)
printf("%d ", number[i]);
return 0;
}
int move(int a[20], int n, int m) {
int *p, b;
b = *(a + n - 1);
for (p = a + n - 1; p > a; p--)
*p = *(p - 1);
*a = b;
m--;
if (m > 0)
move(a, n, m);
return 0;
}