问题描述:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
程序源码:
#include<stdio.h>
void main()
{
int number[20],n,m,i;
printf("the total numbers is:");
scanf("%d",&n);
printf("back m:");
scanf("%d",&m);
for(i=0;i<n-1;i++)
scanf("%d,",&number[i]);
scanf("%d",&number[n-1]);
move(number,n,m);
for(i=0;i<n-1;i++)
printf("%d,",number[i]);
printf("%d",number[n-1]);
}
move(array,n,m)
int n,m,array[20];
{
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);
}
本文介绍了一个简单的数组旋转算法,通过递归方式将数组中的元素向后移动指定位置,实现数组的循环右移。程序使用C语言编写,包括输入数组长度、移动位数及数组元素,然后调用递归函数完成数组旋转。
5054

被折叠的 条评论
为什么被折叠?



