/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
请编写函数 fun, 函数的功能是: 移动一维数组中的内容; 若数组中有 n 个整数,
要求把下标从 0 到 p(含 p,p 小于等于 n-1 )的数组元素平移到数组的最后,最后
输出移动后的数组。
示例:
【请输入数组元素的个数: 】10
【请输入10 个整数:】1 2 3 4 5 6 7 8 9 10
【请输入p 的值 (p <= 9):】 5
【移动后的数组为: 】7 8 9 10 1 2 3 4 5 6
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅
在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
void fun(int *w, int p, int n)
{
    int temp[p + 1];
    /**********Program**********/
    int i,k=0;
	for(i=0;i<p+1;i++){
		temp[i] = w[i];
	}
	for(;i<n;i++){
		w[k++]=w[i];
	}
	for(i=0;k<n;k++){
		w[k]=temp[i++];
	}
    /********** End **********/
}
int main()
{
    int n, p;
    printf("【请输入数组元素的个数: 】");
    scanf("%d", &n);
    int a[n];
    printf("【请输入%d 个整数:】", n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    printf("【请输入p 的值 (p <= %d): 】", n - 1);
    scanf("%d", &p);
    fun(a, p, n);
    printf("【移动后的数组为: 】");
    for (int i = 0; i < n; i++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");
    return 0;
}