| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 425 人关注过本帖
标题:一个死循环的链表
只看楼主 加入收藏
tobyliying
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-4-16
收藏
 问题点数:0 回复次数:3 
一个死循环的链表

各位帮我看看呀。。 我是照的书在写呀。。 怎么会是死循环呢。
#include "stdafx.h"
#include "iostream.h"
#include "string.h"
struct student
{
char num[5];
char name[20];
char tel[15];
student *next;
};
int n;
student* creat()
{
student *head,*p1,*p2;
n=0;
p1=p2=new student;
cout<<"input num name tel"<<endl;
cin>>p1->num>>p1->name>>p1->tel;
head=NULL;
while(p1->num!=0) //从这里开始就是死循环了,没有办法退出while 语句?
{
n++;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=new student;
cin>>p1->num>>p1->name>>p1->tel;
}
p2->next=NULL;
cout<<"creat successful"<<endl;
return(head);
}
student* delstu(student*head)
{
student *p1,*p2;
int i,m;
char number[5];
cout<<"please input a number.xuhao=1 xuehao=2 tuichu=3"<< endl;
while(m<3)
{
cin>>m;
if(m==1)
{
cin>>i;
if(head==NULL)
{
cout<<"list null"<<endl;
return head;
}
p1=head;
while(p2!=NULL&&i!=0)
{
i--;
p2=p1;
p1=p1->next;
}
if(i==0)
{
p2->next =p1->next ;
delete p1;
n--;
cout<<"delete successful"<<endl;
return head;
}
else
{
cout<<"not been found"<<endl;
return head;
}
}
else if(m==2)
{
cin>>number;
if(head==NULL)
{
cout<<"list null"<<endl;
return head;
}
p1=head;
while(p2!=NULL&&strcmp(p1->num,number))
{
p2=p1;
p1=p1->next;
}
if(strcmp(p1->num ,number))
{
p2->next =p1->next ;
delete p1;
n--;
cout<<"delete successful"<<endl;
return head;
}
else
{
cout<<"not been found"<<endl;
return head;
}
}
}

}

int main(int argc, char* argv[])
{
student *head;
head=creat();
head=delstu(head);
return 0;
}

搜索更多相关主题的帖子: 链表 
2007-06-25 20:56
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
num是字符型... 所以你cin得到的num实际是ASCII码..
"0"的ASCII码是30.. 当然不等于0, 当然死循环...
把num改成int, 或者在while中用(p->num!='0')判断

女侠,约吗?
2007-06-25 21:06
tobyliying
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-4-16
收藏
得分:0 
我也刚看到。。还是谢谢你。。
我这个程序还是有点问题呀。帮我看看 为什么删除会有错误呢
2007-06-25 21:15
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
while(m<3)..这句之前m没有进行初始化...

while(p2!=NULL&&i!=0)..这个循环有问题..
你想用i干什么? 我看好象没必要...

大概看了这么多.. 仅供参考..
睡觉了.. 明天还上班...

女侠,约吗?
2007-06-25 21:26
快速回复:一个死循环的链表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019885 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved