删除链表中的所有偶数~~~~出错~~求助~~

[复制链接]
查看11 | 回复1 | 2011-6-21 22:48:36 | 显示全部楼层 |阅读模式
for(i=0;in=rand()%100;
        q->next=head;
        head=q;
        }
        for(q=head;q!=NULL;q=q->next)       
                printf("%d\n",q->n);

for(q=head;q!=NULL;q=q->next)
         {
                 if((q->n)%2==0)
                        

p=q;
                 q=p->next;
                 free(p);
         }

for(p=head;p!=NULL;p=p->next)       
                printf("%d\n",p->n);
为什么进行了这个操作后 显示不了新的链表 而且如果链表中第一个数是偶数 又出现DEBUG ASSERT FAILED的错误。、。。。。
中间的是if((q->n)%2==0)
                {        

p=q;
                 q=p->next;
                 free(p);

}结局一样。。。。

回复

使用道具 举报

千问 | 2011-6-21 22:48:36 | 显示全部楼层
首先 if((q->n)%2==0) 改成if((q->n & 1)==0)第二,你都free(p)了,但你的head没动啊,所以出现debug错误!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行