#include<stdio.h>
#include<malloc.h>
void reverse(int *a,int low,int high)
{
int temp;
while(low<high)
{
temp=a[low];
a[low]=a[high];
a[high]=temp;
low++;
high--;
}
}
int main()
{
int n,m,i;
int *a;
while(~scanf("%d%d",&n,&m))
{
if(n<1||n>100||m<0) continue;
a=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
scanf("%d",&a[i]);
m%=n;
reverse(a,0,n-m-1);
reverse(a,n-m,n-1);
reverse(a,0,n-1);
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[i]);
}
return 0;
}1008_数组元素循环右移问题 (20)
本文详细介绍了使用C语言实现数组反转的多轮递归算法,包括输入整数序列、序列长度、指定操作次数,通过三轮递归完成序列的局部反转,最终输出反转后的完整序列。

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



