qq_38898468 2017-06-07 16:54 采纳率: 100%
浏览 1124
已采纳

把一个新节点插入到原链表中求大神看看哪错了

#include
#include
struct student
{

int num;

char name[15];

char clas[10];

char address[20];

struct student *next;
}
main()
{

struct student *head,*New,*p,*q;

int n,i,flag=1;

scanf("%d",&n);

head=New=(struct student *)malloc(sizeof(struct student));

scanf("%d %s %s %s",&New->num,New->name,New->clas,New->address);

for(i=0;i { New->next=(struct student *)malloc(sizeof(struct student));

New=New->next;

scanf("%d %s %s %s",&New->num,New->name,New->clas,New->address);

}

New=New->next=NULL;
free(New);

while(head!=NULL)
{

printf("%d %s %s %s\n",head->num,head->name,head->clas,head->address);

head=head->next;
}
q=head;
p=(struct student *)malloc(sizeof(struct student)); scanf("%d %s %s %s",&p->num,p->name,p->clas,p->address);
while(flag)
{

if(q->num==2)
{

q->next=p->next;

p->next=q;

flag=0;

}

q=q->next;
}

while(head!=NULL)
{

printf("%d %s %s %s\n",head->num,head->name,head->clas,head->address);
head=head->next;
}
}

  • 写回答

1条回答 默认 最新

  • gracewyc 2017-06-08 01:52
    关注

    你的输出那块错了,head=head->next; 已经把head移动了,所以head最后为NULL,已经找不到链表的头节点了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?