南极人探险 2021-09-16 22:40 采纳率: 87.5%
浏览 115
已结题

C语言链表输出的结果前多了一串数字



#include<stdio.h>
#include<stdlib.h>

typedef int DataType;

typedef struct Node{
    DataType data;
    struct Node *link;
}LinkList;

LinkList *Create_List(){
    LinkList *head,*p,*q;
    int x,flag=1;
    head=(LinkList*)malloc(sizeof(LinkList));//为头结点分配存储空间 
    head->link=NULL;
    q=head;
    while(flag)
    {
        scanf("%d",&x);
        if(x!=-1)
        {
            p=(LinkList*)malloc(sizeof(LinkList));
            p->data=x;
            q->link=p;
            q=p; 
        }
        else {
            flag=0;
            q->link=NULL;
        }
    }
    return head;
}

main(void){
    LinkList *t;
    t=Create_List();
    while(t!=NULL)
    {
        printf("%d\n",t->data);
        t=t->link;
    }
}

输入的数据前多了一串数字

img

  • 写回答

3条回答 默认 最新

  • qfl_sdu 2021-09-16 22:47
    关注

    因为你Create_List函数创建链表的时候,第一个节点没有赋值,是一个随机数,但是在你遍历链表的时候,显示了第一个节点的值,所以就多出来了这个数.
    在t=Create_List();下面添加一句:
    t=t->link;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 创建了问题 9月16日

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献