用C语言怎么编写一个函数 删除数组中所有的0,并将其后元素往前移。……作业截止日期快到了……谢谢帮忙

函数需要接受数组及其元素作为参数,返回值应为删除操作执行后数组的新元素个数

如下int del_zero(int *p,int n);为你需要的函数,下面附带测试程序!
不明白就追问吧!
#include<stdio.h>
int del_zero(int *p,int n);
int main(void)
{
int i,n,test[128];
printf("请输入测试数组元素的个数n...\n");
scanf("%d",&n);
printf("请输入%d个数组元素\n",n);
for(i=0;i<n;i++)
scanf("%d",&test[i]);
printf("\n输入的数据元素为:\n");
for(i=0;i<n;i++)
printf("%d ",test[i]);
n=del_zero(test,n);
printf("\n删除0元素后的数组长度=%d,剩余元素为:",n);
for(i=0;i<n;i++)
printf("%d ",test[i]);
return 0;
}
int del_zero(int *p,int n)
{
int i,j,temp,len=n;
for(i=0;i<len;i++){
if(p[i]==0){
for(j=i;j<len;j++){
p[j]=p[j+1];
}
len--;
}
}
return len;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-04
删除数组中元素为0的值?然后输出没有0的元素?
相似回答