| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 760 人关注过本帖
标题:菜鸟求助...关于链表问题....
只看楼主 加入收藏
c_er
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-9-8
收藏
 问题点数:0 回复次数:10 
菜鸟求助...关于链表问题....

今天学习单链表添加数据...我用的是DEV C++ 编译器,,程序没有报错..但是不能正常运行

图片附件: 游客没有浏览图片的权限,请 登录注册
就出现了这个图片..想了好久,都不明白..


但是用 TC编译器却,可以运行.. 有点 晕了... 求求大家帮帮我啊~~


以下是程序,,主要是功能是: 让用户输入数据,并把数据打印出来....



#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


typedef struct student /*建立*/
{
int data;
struct student*next;
}students;

students*init() /*初始化*/
{
students*head;
head=(students*)malloc(sizeof(students));
head->next=NULL;
return head ;
}

int main(void)
{
int input(students*head);
int print(students*head);
students*head;
head=(students*)malloc(sizeof(students));
head=init();
input(head);
print(head);
getch();
}


int input(students*head)
{
char sign;
students*p;
do
{
p=(students*)malloc(sizeof(students));
scanf("%d",&p->data);
head->next=p;
head=p;
printf("wether to inout (y/n):");
scanf("%s",&sign);
}
while(sign=='Y'||sign=='y'); /*do-while 结构。*/

head->next=NULL;
return 1;
}


int print(students*head)
{
while(head->next!=NULL)
{
head=head->next;
printf("%d",head->data);
printf("hello");
}
return 2;
}



先谢谢各位了............

搜索更多相关主题的帖子: 链表 
2007-09-09 14:11
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
很简单,因你的操作指针有错
还有,别以为能运行就是对的
特别是TC上



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
2007-09-09 14:15
c_er
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-9-8
收藏
得分:0 


很感谢,斑竹的留言,,但是,我还是不懂啊>>?? 555555555
还有就是
原来程序输入一个数据的时候,用(Y/N)来表示输入是否(继续/结束),,我把它换成了,,但用户输入 -1表示程序结束...结果就可以运行了,,,TC就不用说了...
下面是可以运行的程序,,只是改变了sign(标记)... 到底是怎么回事啊>>?



#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


typedef struct student /*建立*/
{
int data;
struct student*next;
}students;

students*init() /*初始化*/
{
students*head;
head=(students*)malloc(sizeof(students));
head->next=NULL;
return head ;
}

int main(void)
{
int input(students*head);
int print(students*head);
students*head;
head=(students*)malloc(sizeof(students));
head=init();
input(head);
print(head);
getch();
}


int input(students*head)
{
int sign;
students*p;
do
{
p=(students*)malloc(sizeof(students));
scanf("%d",&p->data);
head->next=p;
head=p;
printf("wether to inout or not (-1 means end):");
scanf("%d",&sign);
}
while(sign!=-1); /*do-while 结构。*/

head->next=NULL;
return 1;
}


int print(students*head)
{
while(head->next!=NULL)
{
head=head->next;
printf("\n%d",head->data);
}
return 2;
}


一件小事做久了, 就是一件很伟大的事情.
2007-09-09 16:35
lylucia
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-9-5
收藏
得分:0 

2007-09-09 20:21
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
char sign;
scanf("%s", &sign);
天哪。。。。这么危险的代码。。。。



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
2007-09-09 20:36
c_er
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-9-8
收藏
得分:0 


我又测试了一下,把 标记变了一下..
do
{
......
char sign;
scanf("%c",&sign)
}while(sign=='Y'||sign=='y');


;,,结果只运行一次,,,就 直接打印了出来,,, 似乎把输入的 'enter' 相对应的ASLL也赋给了 sign,,,从儿导致,while语句判断的时候,,就 以为拥护是输入的是 putch(),而不是 'y','Y' ...


5555555555 郁闷啊~~~~~~~~~~

一件小事做久了, 就是一件很伟大的事情.
2007-09-10 09:17
c_er
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-9-8
收藏
得分:0 

啊~~.
指针应该没有问题吧...


到底是怎么回事呀???


一件小事做久了, 就是一件很伟大的事情.
2007-09-10 19:05
c_er
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-9-8
收藏
得分:0 

啊 ~坚决不要让这个.(我的处女贴)沉下去...


大家帮帮我啊~~~~~~~~~ 呵呵


一件小事做久了, 就是一件很伟大的事情.
2007-09-11 13:59
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


typedef struct student /*建立*/
{
int data;
struct student *next;
}students;

students *init() /*初始化*/
{
students *head;
head=(students * )malloc(sizeof(students));
head->next=NULL;
return head ;
}

int main(void)
{
int input( students * );
int print( students * );
students*head;
head=(students*)malloc(sizeof(students));
head=init();
input(head);
print(head);
getch();
}


int input(students *head)
{
int sign;
students*p;
do
{
p=(students*)malloc(sizeof(students));
scanf("%d",&p->data);
head->next=p;
head=p;
printf("wether to inout or not (-1 means end):");
scanf("%d",&sign);
}
while(sign!=-1); /*do-while 结构。*/

head->next=NULL;
return 1;
}


int print(students *head)
{
while(head->next!=NULL)
{
head=head->next;
printf("\n%d",head->data);
}
return 2;
}
我用vc++运行的,没什么错误.


学习需要安静。。海盗要重新来过。。
2007-09-11 14:56
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


typedef struct student /*建立*/
{
int data;
struct student *next;
}students;

students *init() /*初始化*/
{
students *head;
head=(students * )malloc(sizeof(students));
head->next=NULL;
return head ;
}

int main(void)
{
int input( students * );
int print( students * );
students *head;
head=(students*)malloc(sizeof(students));
head=init();
input(head);
print(head);
getch();
}


int input(students *head)
{
int sign;
students *p;
printf("wether to inout or not (-1 means end):\n");
do
{ p=(students*)malloc(sizeof(students));
scanf("%d",&p->data);
if(p->data!=-1)
{
head->next=p;
head=p;
}
else break;
}
while(1); /*do-while 结构。*/

head->next=NULL;
return 1;
}


int print(students *head)
{
while(head->next!=NULL)
{
head=head->next;
printf(" %d ",head->data);
}
return 2;
}
这个是才改的,你看看这个啊.


学习需要安静。。海盗要重新来过。。
2007-09-11 15:13
快速回复:菜鸟求助...关于链表问题....
数据加载中...
 
   



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

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