hudld123 2022-12-09 15:10 采纳率: 60%
浏览 30
已结题

C语言链表不能输出最后一组数据



```c
void train_information()    //输入列车信息 
{
    int n=1;
    line=NULL;
    p1=p2=(struct train *)malloc(sizeof(struct train));
    scanf("%s %s %d%d%d%d%d%f%d",p1->terminal,p1->sequence,&p1->StartTime.year,&p1->StartTime.month,&p1->StartTime.day,&p1->StartTime.hour,&p1->StartTime.minute,&p1->fare,&p1->SpareTicketNum);
    p1->next=NULL;
    while(n<5)
    { 
        n++;
        if(line==NULL)
           line=p1;
        else 
           p2->next=p1;
        p2=p1;
        p1=(struct train *)malloc(sizeof(struct train));
        scanf("%s %s %d%d%d%d%d%f%d",p1->terminal,p1->sequence,&p1->StartTime.year,&p1->StartTime.month,&p1->StartTime.day,&p1->StartTime.hour,&p1->StartTime.minute,&p1->fare,&p1->SpareTicketNum);
        p1->next=NULL;
    }
}
> 

```

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-12-09 15:19
    关注

    你的逻辑有问题啊,第5个节点p1只是完成了创建,但没有加入链表啊

    
    void train_information()    //输入列车信息 
    {
        int n=0;
        line=NULL;
        while(n<5)
        { 
            p1=(struct train *)malloc(sizeof(struct train));
            scanf("%s %s %d%d%d%d%d%f%d",p1->terminal,p1->sequence,&p1->StartTime.year,&p1->StartTime.month,&p1->StartTime.day,&p1->StartTime.hour,&p1->StartTime.minute,&p1->fare,&p1->SpareTicketNum);
            p1->next=NULL;
            //
            if(line==NULL)
               line=p1;
            else 
               p2->next=p1;
            p2=p1;
            n++;
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月17日
  • 已采纳回答 12月9日
  • 创建了问题 12月9日

悬赏问题

  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术