C语言静态链表输出小问题?

本意是给有3个节点的静态链表输入100,200,300这3个数,然后在屏幕上输出出来,结果输入后得出的输出结果都是0,0,0,不知道输入环节错在什么地方,拜托大家赐教一下... 本意是给有3个节点的静态链表输入100,200,300这3个数,然后在屏幕上输出出来,结果输入后得出的
输出结果都是0,0,0,不知道输入环节错在什么地方,拜托大家赐教一下,谢谢,源程序如下:
#include <stdio.h>
#include <conio.h>

struct lianbiao
{
int n;
struct lianbiao *next;
}a, b, c;

void display(struct lianbiao *head)
{
struct lianbiao *p = NULL;
p = head;
while(p != NULL)
{
printf("%d\n", p -> n);
p = p -> next;
}

void main(void)
{
struct lianbiao *head = NULL, *p = NULL;
clrscr();
head = &a; a.next = &b; b.next = &c; c.next = NULL;
p = head;
while(p != NULL)
{
scanf("%d", p -> n);
p = p -> next;
}
display(head);
}
展开
 我来答
0902060114
2007-10-25 · TA获得超过336个赞
知道小有建树答主
回答量:313
采纳率:0%
帮助的人:0
展开全部
楼主注意啦!!!!
你在用scanf函数输入一个整数的时候p->n前要加上一个求地址符&
scanf("%d", p -> n); 应该改成 scanf("%d", &(p -> n));

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

struct lianbiao
{
int n;
struct lianbiao *next;
}a, b, c;

void display(struct lianbiao *head)
{
struct lianbiao *p = NULL;
p = head;
while(p != NULL)
{
printf("%d\n", p -> n);
p = p -> next;
}
}

void main(void)
{
struct lianbiao *head = NULL, *p = NULL;
//clrscr();
head = &a; a.next = &b; b.next = &c; c.next = NULL;
p = head;
while(p != NULL)
{
scanf("%d", &(p -> n));
p = p -> next;
}
display(head);
}
tzd19860212
2007-10-25 · TA获得超过278个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:0
展开全部
兄弟,你说你可以运行不是真的吧,
void display(struct lianbiao *head)最后少一个大括号,我可是
找了一会才发现的呀
我运行了下,你如果直接a.n=100,b.n=200,c.n=300,而不使用输入的形势,那这个程序的输出示正确的,所以说是
while(p != NULL)
{
scanf("%d", p -> n);
p = p -> next;
}
的问题,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式