C语言编写程序:数组元素的插入与删除

Description
给定一个数组,在数组的指定位置插入一个新元素或删除指定位置的元素。
Input
每组数据的第一个数是一个整型数,表示数组元素的个数,其后是数组中的每一个元素(都是整型数)。再后是操作类型,1——插入、2——删除。如果是插入操作,则其后是插入的位置(从0开始)及被插入的元素;如果是删除操作,则其后是被删除元素的位置。
Output
插入或删除后的数组中的各个元素,以空格分隔。
Sample Input
11 328 -95 982 7482 342 -798 347 289 347 9823 748 1 7 -1234
15 927 -34989 472 893 -7489 27 48927 -348 972 89 3 -4782 94 37 892 2 5
Sample Output
328 -95 982 7482 342 -798 347 -1234 289 347 9823 748
927 -34989 472 893 -7489 48927 -348 972 89 3 -4782 94 37 892
用C语言。

#include <stdio.h>
void addData(int *a,int n,int pos,int data)
{
    for(int i=n;i>pos;i--)
        a[i] = a[i-1];
    a[pos] = data;
}

void delData(int *a,int n,int pos)
{
    for(int i=pos;i<n-1;i++)
        a[i] = a[i+1];
}
int main()
{
    int n,i;
    int a[1000];
    int fun;
    int pos;
    int data;
    while(scanf("%d",&n) != EOF)
    {
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);
        scanf("%d",&fun);
        if(fun == 1)
        {
            scanf("%d%d",&pos,&data);
            addData(a,n,pos,data);
            n++;
        }
        else if(fun == 2)
        {
            scanf("%d",&pos);
            delData(a,n,pos);
            n--;
        }
        for(i=0;i<n;i++)
            printf("%d ",a[i]);
    }

    return 0;
}