关于链表的一个小问题

lightyacht 2008-05-18 08:21:06
#include<stdio.h>
#include<malloc.h>
typedef struct
{
int num;
char name[20];
} elemtype;
typedef struct LNode
{
elemtype data;
struct LNode *next;
} node;


int main()
{
int i=0;
node *head,*p,*q;
head=NULL;
q=p=(node *)malloc(sizeof(node));
while( (p->data).num !=0)
{
if(p!=NULL)
{
printf("Please input :\n");
scanf("%d, %s",((p->data).num),((p->data).name));
if(0==i)
{
head=p;
i++;
}
else
q->next=p;
q=p;
}

// q=p;
p=(node *)malloc(sizeof(node));
}

printf("%d\n",sizeof(elemtype));
system("pause");
return 0;
}

程序不能正常运行,应该是标红的地方有问题,可我看不出来,哪位能说说
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lightyacht 2008-05-18
  • 打赏
  • 举报
回复
确实不能跳出循环,我是给条件while( (p->data).num !=0) 了,但scanf (p->data).num =0,却不跳出循环,这是怎么回事

[Quote=引用 1 楼 kings_zqz 的回复:]
#include <stdio.h>
#include <malloc.h>
typedef struct
{
int num;
char name[20];
} elemtype;
typedef struct LNode
{
elemtype data;
struct LNode *next;
} node;


int main()
{
int i=0;
node *head,*p,*q;
head=NULL;
q=p=(node *)malloc(sizeof(node));
while( (p->data).num !=0)
{
if(p!=NULL)

[/Quote]
p1s 2008-05-18
  • 打赏
  • 举报
回复
scanf("%d, %s",&((p->data).num),&((p->data).name));
chenzhp 2008-05-18
  • 打赏
  • 举报
回复
scanf("%d, %s",&((p->data).num),((p->data).name));
kojie_chen 2008-05-18
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <malloc.h>
typedef struct
{
int num;
char name[20];
} elemtype;
typedef struct LNode
{
elemtype data;
struct LNode *next;
} node;


int main()
{
int i=0;
node *head,*p,*q;
head=NULL;
q=p=(node *)malloc(sizeof(node));
while( (p->data).num !=0)
{
if(p!=NULL)
{
printf("Please input :\n");
scanf("%d,%s",(&(p->data).num),((p->data).name));
if(0==i)
{
head=p;
i++;
}
else
q->next=p;
q=p;
}

// q=p;
p=(node *)malloc(sizeof(node));
}

printf("%d\n",sizeof(elemtype));
//system("pause");
return 0;
}
好像一直会输入,你少了个地址符号,不会跳出循环,不知道你的具体意思是什么

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧