#include<stdio.h>
#define N 20
int delnum(int p[],int n,int num);
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;
}
int delnum(int a[20] , int n , int num)
{
int x,y,z=20;
for(x=0;x<20;x++)
{
if(a[x]==num)
{
for(y=x;y<z-1;y++)
{
a[y]=a[y+1];
}
z--;
x--;
}
}
return z;
}
在最后一个数据是要被删除的数时会出现死循环,求问如何解决?
比如:2 2 2 2 2 9 9 9 9 9 3 3 3 3 3 9 9 9 9 9删除9,程序不能正常运行
测试了一下,没有发现什么问题啊
你的测试数据样本是啥样的呢