2006.10.25(6)

#include <stdio.h>
#include "math.h"
#define max 100
int RemoveZeroELements(int array[],int n);
int NotZero(int array[],int n,int i);
main()
{
int array[max],v;
int i,length,n;
n=0;
clrscr();

printf("这是一个删除数组中值为0的元素的程序。/n");
printf("输入一个整型数组,最多100个,以-1结束。/n");

while(n<max)
{
 scanf("%d",&v);
 if(v==-1)break;
 array[n]=v;
 n++;
}

printf("The old array's length is %d/n",n);
for(i=0;i<n;i++)
 printf("%3d",array[i]);
printf("/n");

length=RemoveZeroELements(array,n);
printf("The array's length is %d/n",length);
for(i=0;i<length;i++)
 printf("%3d",array[i]);
getch();
}

int RemoveZeroELements(int array[],int n)
{
 int i,r;
 i=0;
 while(i<n)
 {
  if(array[i]==0)
  {
   r=NotZero(array,n,i);
   if(r)array[i]=r;
   else return i;
  }
  i++;
 }
 return i;
}

int NotZero(int array[],int n,int pos)
{
 int m,r;
 for(m=pos+1;m<n;m++)
 {
  if(array[m]!=0)
  {
   r=array[m];
   array[m]=0;
   return r;
  }
 }
 return 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值