加油小王!! 2021-09-21 21:14 采纳率: 33.3%
浏览 36

C语言找bug啊,实在看不出来啊,到底为什么输入不成功,但也不报错啊


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

#define TRUE        1
#define FALSE       0
#define OK          1
#define ERROR       0
#define INFEASIBLE  -1
#define OVERFLOW    -2


typedef struct LNode
{
    char data[100];
    struct LNode *next;

}LNode,*LinkList;



//在链表末尾增加新的节点,新节点数据域为data
void ListInsert(LinkList* L,char *data)
{
    LinkList temp=*L;
    LinkList p=(LinkList)malloc(sizeof(LNode));

    strcpy(p->data,data);
    //strcpy(p->data,*data),这样是有问题的,只有第一个元素
    p->next=NULL;
    //if、else着重再想想!!!!!!!!!!!!!!!
    if(*L==NULL)
        *L=p;
    else
    {
        while(temp->next!=NULL)
        {
            temp=temp->next;
        }
        temp->next=p;
    }
}


//链表数据的输入
void ScanData(LinkList L)
{
    char data[100];
    int count=0;
    int num=5;
    while(count<num)
    {

        gets(data);
        ListInsert(&L,data);
    }
}


int main(void)
{
    LinkList h=(LinkList)malloc(sizeof(LNode));
    ScanData(h);
  

    return 0;

}
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2021-09-21 21:22
    关注
    while(count<num)
        {
     
            gets(data);
            ListInsert(&L,data);
            count++;  -- 少了这句,就是死循环
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月21日