数组中移动多个数的位置,重新输出
(1)题目描述
有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前面的m个数,写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。
(2)样例输入
10 20 30 40 50 60 70 80 90 100
(3)样例输出
注:假设将最后面的三个放在最前面
80 90 100 10 20 30 40 50 60 70
(4)解题思路
我们可以找一个空盒子,也就是一个空的数组,将后面的三个数先放在该数组中,然后再将前面七个也放进去,这时候这个新的数组就是我们要的那种顺序了,然后将这个数组依次放进原数组中,这时候将原数组再输出就行。
就是在考虑一个问题的时候,应该把好多方面都考虑进去,比如要移动的数字个数等于原数组中数的个数,那就相当于没有移动,就直接返回原来的数组就行,单数如果m大于了n那就相当于把m-n个数移动了,比如我想将12个数移动到最前面,但其实只有10个数,这时在移动的时候,先是依次将10个数从头到尾放到那个空盒子里,然后第11,12这两个是不存在的,就将最后面的两个数90,100再放进去了,最后呈现的结果就是 其实是全部都移动了,但是结果看起来只是移动了m-n个而已。
(5)代码
#include<stdio.h>
int* Move(int p[],int len,int m)
{
if(m>len