【C语言】帮忙看下这道题如何写呢

编写函数int delnum(int a[ ] , int n , int num),实现在长度是n的数组a中,删除值为num的元素。删除后数组的中剩余数据的个数作为函数的返回值返回。注意,num在数组中可能不只一个。。
从数据中删除一个数,所做的操作是该元素后面的数据全部前移一个存储位置。例如:
长度为10的数组中存储10个数据:2,2,5,8,3,1,4,7,9,2,删除2,则数组中剩余有效数据长度为8,依次为5,8,3,1,4,7,9
主函数如下:
#include
#include
#define N 20
int delnum(int p[],int n,int num);
int main()
{
int a[N],num,len,i;
//给数据N个数赋值,可以通过键盘输入,或从数据文件中读出,或随机产生
for(i=0;i<N;i++) //输出数据中所有数据
printf("%d ",a[i]);
puts("");
printf("Please input delete num:");
scanf("%d",&num); //输入要删除的数
len=delnum(a,N,num); //调用函数,从数组a中删除num,返回剩余数据个数
for(i=0;i<len;i++) //输出删除后的数组数据
printf("%d ",a[i]) //注意,这里只输出len个数据
puts("");
return 0;
}
定义并编写delnum函数

 int delnum(int p[],int n,int num)
{
    int nLen = n;
    for (int i = 0;i < n;i ++)
    {
        if (p[i] == num)
        {
            nLen --;
        }
    }
    return nLen;
}