西南科技大学OJ题 顺序表中数据的循环移动1101

顺序表中数据的循环移动

设有长度为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;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40593308/article/details/84443407
今日推荐