功能:输入一个数字,如果数组中有这个数,则将数组里的这个数删掉。
返回删除后数组的长度,若没有这个数,则返回一个小于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;
}