一个链表的输出问题
#include"stdlib.h"#include"stdio.h"
struct list
{
int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{
link ptr, head;
int num,i;
head=(link)malloc(sizeof(node));
ptr=head;
printf("please input 5 numbers==>\n");
for(i=0;i<=4;i++)
{
scanf("%d",&num);
ptr->data=num;
ptr->next=(link)malloc(sizeof(node));
if(i==4) ptr->next=NULL;
}
ptr=head;
while(ptr!=NULL) // 哪里出错了这段??
{printf("the value is ==>%d\n",ptr->data);
ptr=ptr->next;
}
getch();
}
// 创建这个连表后为什么输出时只有最后一个元素.烦各位指点
----------------解决方案--------------------------------------------------------
回复:(dainichuhai)一个链表的输出问题
已找出真是愚钝
还是谢谢你看贴
----------------解决方案--------------------------------------------------------
ptr->next=(link)malloc(sizeof(node));
if(i==4) ptr->next=NULL;
改为
if(i==4) ptr->next=NULL;
else ptr->next=(link)malloc(sizeof(node));
ptr = ptr->next;
----------------解决方案--------------------------------------------------------