65,211
社区成员
发帖
与我相关
我的任务
分享 for(int i=0;i <n;i++) //循环有点问题
{
if(a[i]==0)
{ l++;
for(int m=i;m <n-1;m++) //如9,0,0,9 你的操作是将检测到0的值用后面的值向前覆盖,那么数组的最后一个数没有操作,比如a[1]被覆盖,那么 //整个数组变为9,0,9,9
{
a[m]=a[m+1];
}
n--;
}
if(a[0]==0) //这里出问题了
{ //如0,0,9,9 即使a[0] == 0的时候会经过上面的for循环覆盖掉,但是用于覆盖a[0]的a[1]也是0,那么再执行if语句的 //时候i--,下条语句中i的值就为-1了
i--;
}