| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 776 人关注过本帖
标题:[求助]单链表改了还错??
取消只看楼主 加入收藏
linsongbin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-6-9
收藏
 问题点数:0 回复次数:5 
[求助]单链表改了还错??

#include<stdio.h>
#include<malloc.h>
#include <conio.h>
/**************************************************************/
struct student
{
int num;
struct student *next;
};
/************************创建链表****************************/
struct student *create()
{
struct student *head;
head=(struct student *)malloc(sizeof(struct student));
head->next=NULL;
return head;
}
/************************录入数据******************************/
void Input(struct student *h)
{
struct student *p,*q;
p=h;
while(1)
{
q=(struct student *)malloc(sizeof(struct student));

printf("请输入学生学号:");
scanf("%d",&p->num);

q->next=NULL;
p->next=q;
p=q;

int ch;
printf("要继续输入下一个吗(y/n)\n");ch=getch();
if(ch=='y'||ch=='Y')
{
}
else
{
free(q);
break;
}

}
}
/************************显示链表******************************/
void Disp(struct student *h)
{
printf("\n\n");

struct student *p=h;

while(p->next!=NULL)
{
printf("学号为:%d\n",p->num);
p=p->next;
}
}
/***************************************************************/
void main()
{
struct student *h;
h=create();
Input(h);
Disp(h);
}
/***************************************************************/

[此贴子已经被作者于2007-7-22 23:11:53编辑过]

搜索更多相关主题的帖子: 单链 
2007-07-22 22:28
linsongbin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-6-9
收藏
得分:0 
最后一个是乱码~~
2007-07-22 22:39
linsongbin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-6-9
收藏
得分:0 
int ch;
printf("要继续输入下一个吗(y/n)\n");ch=getch();
if(ch=='y'||ch=='Y')
{
}
else
{
free(q);
break;
}
主要是加了这段,如果换了就可以.......
2007-07-22 22:46
linsongbin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-6-9
收藏
得分:0 
不是吧,你调试没问题???我用的是vc++ 6.0

像这样

请输入学生学号:21
要继续输入下一个吗(y/n)n

学号为:21
学号为:-572662307



就这样......................为什么啊?????????

[此贴子已经被作者于2007-7-22 23:11:32编辑过]

2007-07-22 23:09
linsongbin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-6-9
收藏
得分:0 
可以啦,,谢谢~~~~~~~~~~


但为什么free(q)

就会出错???????????????

2007-07-23 00:39
linsongbin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-6-9
收藏
得分:0 
以下是引用福尔摩斯在2007-7-23 4:52:25的发言:


没看明白你们是在问什么问题

哈哈~~~~~~~~~~~~~~~~~~~~~~~~~~~`你编译下这个程序就知到问题所到。。


那应该是申请了新结点,又被 free(q) 删了,所以才会出错。。。。

2007-07-23 07:39
快速回复:[求助]单链表改了还错??
数据加载中...
 
   



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

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