已知数组array[10]={1,2,3,4,5,6,7,8,9,10};要求把下标从0到p(p从键盘输入)的数组元素平移到数组的最后,并输出平移后的数组。

已知数组array[10]={1,2,3,4,5,6,7,8,9,10};要求把下标从0到p(p从键盘输入)的数组元素平移到数组的最后,并输出平移后的数组。


#include <stdio.h>

int main(void) { 
    int array[10]={1,2,3,4,5,6,7,8,9,10};
    int move_array[10];
    int p;
    scanf("%d", &p);
    int j=0;
    for(int i=p+1;i<10;i++){
        move_array[j++]=array[i];
    }
    for(int i=0;i<=p;i++){
        move_array[j++]=array[i];
    }
    for(int i=0;i<10;i++){
        printf("%d ", move_array[i]);
    }
    return 0;
}

img


int main()
{
    int array[10] = { 1,2,3,4,5,6,7,8,9,10 };
    int a[10];
    int p; cin >> p;
    for (int i = 0; i < 10; i++)//将array复制一下
    {
        a[i] = array[i];
    }
    for (int i = 0; i < 9-p; i++)//将array中后9-p个数挪到前面
    {
        array[i] = a[p + 1 + i];
    }
    for (int i = 0; i <p+1; i++)//将array中前p+1个数用a中对应的数填充
    {
        array[9-p+i] = a[i];
    }
    for (int i = 0; i < 10; i++)
        cout << array[i];
}