C语言 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数

在这里插入图片描述

#include <stdio.h>
void move(int array[20],int n,int m){
    
     //循环后移一次的函数
	int *p,array_end;
	array_end=*(array+n-1);
	for(p=array+n-1;p>array;p--)
		*p=*(p-1);
	*array=array_end;
	m--;
	if(m>0)
		move(array,n,m); //递归调用,当循环次数m减至为0时,停止调用
}
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("%3d",number[i]);
	return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Aiden51/article/details/127227125
今日推荐