2019/1/28数字的移动

题目描述
有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;
}

原文地址:https://www.cnblogs.com/Locking-Shonn/p/12569221.html