调用函数的补充相关问题

功能:输入一个数字,如果数组中有这个数,则将数组里的这个数删掉。
返回删除后数组的长度,若没有这个数,则返回一个小于0的数,
初始数组已按由小到大的顺序排列,

例如:
一维数组中的数据是:1, 3, 5, 6, 7, 7, 8, 10, 10, 10, 13, 15
输入10,输出为:1 3 5 6 7 7 8 13 15
输入4,输出为:数组中没有这个数

注意:请勿改动主函数main和其它函数中的任何内容。

怎么补充完整


#include "stdio.h"
#define N 80

int fun(int a[], int n, int x)
{
    /*********Begin**********/
    
    /**********  End  **********/
}

int main()
{
    int a[N] = {1, 3, 5, 6, 7, 7, 8, 10, 10, 10, 13, 15};
    int i, x, n = 12;
    printf("The original data:\n");
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);

    printf("\n请输入一个整数\n");
    scanf("%d", &x);
    n = fun(a, n, x);

    if (n < 0)
    {
        printf("数组中没有这个数\n");
    }
    else
    {
        printf("\nThe data after deleted:\n");
        for (i = 0; i < n; i++)
            printf("%d ", a[i]);
        printf("\n\n");
    }
    return 0;
}


int fun(int a[], int n, int x)
{
    int i,j=0;
    for(i=0;i<n;i++)
    {
        if(a[i] != x)
          a[j++] = a[i];
    }
    if(j!=n)
      return j;
    return -1;
}

供参考:

#include "stdio.h"
#define N 80

int fun(int a[], int n, int x)
{
    /*********Begin**********/
    int i, j;
    for (i = 0,j = 0;i < n; i++)
        if (a[i] - x)
            a[j++] = a[i];
    if (j == n)
        return -1;
    else
        return j;
    /**********  End  **********/
}

int main()
{
    int a[N] = {1, 3, 5, 6, 7, 7, 8, 10, 10, 10, 13, 15};
    int i, x, n = 12;
    printf("The original data:\n");
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);

    printf("\n请输入一个整数\n");
    scanf("%d", &x);
    n = fun(a, n, x);

    if (n < 0)
    {
        printf("数组中没有这个数\n");
    }
    else
    {
        printf("\nThe data after deleted:\n");
        for (i = 0; i < n; i++)
            printf("%d ", a[i]);
        printf("\n\n");
    }
    return 0;
}