给链表添加数据

goldenrock 2003-08-18 08:38:28
下面有两个给链表添加项和显示的方法,
现在的问题是添加到第三项及以后时会覆盖第二项,请大家帮忙看一下.

struct student
{
char name[20];
int age;
float mark;
struct student *next;
};

struct student *head,*tail;


void addStu()
{
struct student *insert;

insert=(struct student *)malloc(stuLen);

printf("input name:\n");
scanf("%s",&insert->name);

printf("input age:\n");
scanf("%d",&insert->age);

printf("input mark:\n");
scanf("%f",&insert->mark);

insert->next=null;

if(head==null)
{
head=tail=insert;
}
else
{
tail->next=insert;
insert->next=null;
}



void view()
{
struct student *p;
p=head;

while(p!=null)
{
printf("name=%s age=%d mark=%f\n",p->name,p->age,p->mark);

p=p->next;

}

getch();

}


...全文
45 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
goldenrock 2003-08-18
  • 打赏
  • 举报
回复
多谢大牛指点。
ufouser 2003-08-18
  • 打赏
  • 举报
回复
else块的最后添加一行tail = insert;试试

69,336

社区成员

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

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