回 帖 发 新 帖 刷新版面

主题:帮帮看看哪里错了

#define   MAXSIZE   50
#define NULL 0
typedef struct
{    long num;  
     char name[20];
     int  age;
     char sex;
     char address[20];
}student;
    typedef struct  Node
      { student data;
        struct Node *next;
      } LNode,*LinkList;
LinkList Creat_LinkList()
{
         LinkList L;
         LNode *s;
         int x;
         int flag = -1;
         L =  (LNode *) malloc (sizeof(LNode));
         L -> next = NULL;
         printf("请输入节点值,如链表结束,请输入-1:");
         scanf("%ld%s%c%d%s",&student.num,&x->student.name,&x->student.age,&x->student.sex,&x->student.address);
         while(x!= flag )
         {
            s = (LNode *) malloc (sizeof(LNode));
            s ->data=x;
            s ->next=L->next;
            L ->next=s ;
            printf("请输入节点值,如链表结束,请输入-1:");
            scanf("%d",&x);        
         }
     return L;
}
  int void Show_LinkList(LinkList L)
{
   LNode *s;
   s = L;
   while(s->next != NULL)     
     {
           s = s -> next ;
           printf(" %d ",s->data);
     }
     printf("\n");
}

   main()
{  int i,j,x;
    LinkList L;
   do{
       printf("1、从前面插入的链表   2、输出  0、退出\n");
       scanf("%d",&i);
       if(i == 1 )  L =  Creat_LinkList();
       if(i == 2 )  Show_LinkList( L);
     }while(i!=0); 
    return 0;
 }

回复列表 (共1个回复)

沙发

错误太多,明天再给你全部改一下,今天先指出以下主要几点错误:
1.
int x;
x被定义为整型,不能对其使用->操作符。
scanf("%ld%s%c%d%s",&student.num,&x->student.name,&x->student.age,&x->student.sex,&x->student.address);

2.
scanf("%ld%s%c%d%s",&student.num,&x->student.name,&x->student.age,&x->student.sex,&x->student.address);
student.age为int,对应的格式输入符写成了%c(应改为%d)
student.sex为char,对应的格式输入符写成了%d(应改为%c)
3.
这行代码
scanf("%ld%s%c%d%s",&student.num,&x->student.name,&x->student.age,&x->student.sex,&x->student.address);
应该放到下边的while循环中,并改为:
scanf("%ld%s%d%c%s",&s->data.num,&s->data.name,&s->data.age,&s->data.sex,&s->data.address);

我来回复

您尚未登录,请登录后再回复。点此登录或注册