本文主要是介绍写一个函数实现以下功能:有n个整数,使前面各数顺序向后移m个位置,最终m个数变成最前面m个数,在控制台中输入n个整数并且输出调整后的n个数。(用指针方法处理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <stdio.h>
/**
* 将数组中的元素向后移动m个位置
* @param array 要移动的数组,长度为20
* @param n 数组中实际包含的元素数量
* @param m 要移动的位置数
*/
void move(int array[20],int n,int m){
int *p,end;
// 获取数组最后一个元素的值
end=*(array+n-1);
// 将数组中的元素依次向前移动
for(p=array+n-1;p>array;p--)
*p=*(p-1);
// 将原来的最后一个元素放到第一个位置
*array=end;
// m减1,如果仍大于0,则继续递归移动
m--;
if(m>0)move(array,n,m);
}
int main(){
int number[20],n,m,i;
// 输入数组元素个数
printf("输入多少个数字?");
scanf("%d",&n);
printf("输入%d个数字\n",n);
// 输入数组元素值
for(i=0;i<n;i++)
scanf("%d",&number[i]);
// 输入要移动的位置数
printf("你想要后移多少个位置?");
scanf("%d",&m);
// 执行移动操作
move(number,n,m);
// 输出移动后的数组元素
printf("现在它们是:\n");
for(i=0;i<n;i++)
printf("%d ",number[i]);
printf("\n");
return 0;
}
这篇关于写一个函数实现以下功能:有n个整数,使前面各数顺序向后移m个位置,最终m个数变成最前面m个数,在控制台中输入n个整数并且输出调整后的n个数。(用指针方法处理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!