定义长度20的int数组,键盘读入20个1位数写入数组。键盘再输入一个要删除的数,从数组中删除此数。
编写函数int delnum(int a[20] , int n , int num),功能是:在数组a的前n个元素中,删除值为num的元素。删除后数组中剩余数据的个数作为函数的返回值返回。注意,要删除的数num在数组中可能不只一个。
从数组中删除一个数,所做的操作是该元素后面的各数据全部前移一个存储位置。
#include<stdio.h>
#define N 20
int delnum(int p[],int n,int num)
{
int i,j,k,d,a,b;
d=n;
for(i=0;i<n;i++)
{ if(p[i]==num)
{
for(j=i+1;j<n;j++)
{ if(p[j]!=num)
{ a=p[i];
p[i]=p[j];
p[j]=a;
d=d-1;
break;
}
}
for(k=i+1;k<n;k++)
p[k]=p[k+1];
}
}
return(d);
}
int main()
{
int a[N],num,len,i,seed;
printf("Input 20 num:");
for(i=0;i<20;i++) //给数组N个元素赋值
scanf("%d",&a[i]);
puts("========array========");
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,返回剩余数据个数
puts("========array========");
for(i=0;i<len;i++) //输出删除后的数组数据
printf("%d ",a[i]); //注意,这里只输出len个数据
puts("");
return 0;
}