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 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝