顺序表中数据的循环移动
设有长度为n(n>1)的顺序表R,将R中保存的序列循环左移P(0 < P < n)个位置,即将R中的数据由(x0,x1,…,xn-1)变换为(xp,xp+1,…,xn-1,x0,x1,…,xp-1)。如果p值不合法,输出“error!”。
输入
第一行为数据元素个数n; 第二行为n个整数; 第三行为要左移的位数p
输出
移动后的序列。
样例输入
10 1 2 3 4 5 6 7 8 9 10 5
样例输出
6 7 8 9 10 1 2 3 4 5
#include<stdio.h>
int main()
{
int n;
int a[100];
int m,t=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
if(m<0||m>n)
{
printf("error!");
}
else
for(int i=m; ;i++)
{
i=i%n;
if(t!=n)
{
printf("%d ",a[i]);
t++;
}
else
break;
}
}