回 帖 发 新 帖 刷新版面

主题:作业  不会写 我今年才学的c  各位帮帮忙

#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 date;
        struct Node *next;
      } LNode,*LinkList;
LinkList Creat_LinkList()
{
         LinkList L;
         LNode *s;
         int flag;
         L =  (LNode *) malloc (sizeof(LNode));
         L -> next = NULL;
        
         do{
             s = (LNode *) malloc (sizeof(LNode)); 
              printf("请输入学号:(1~40)");
            scanf("%ld",&s->date.num);
            printf("请输入姓名:");
            scanf("%s",s-> date.name);
            printf("请输入性别:");
             scanf("%c",&s-> date.sex);
             printf("请输入年龄:");
             scanf("%d",&s-> date.age);
           printf("请输入地址:");
            scanf("%s",s-> date.address);
             printf("请输入节点值,如链表结束,请输入-1:");
             scanf("%d",&flag);
              s ->next=L->next;
            L ->next=s ;
         }while( flag!=-1);
        
     return L;
}
 void Show_LinkList(LinkList L)
{
   LNode *s;
   s = L->next;
   printf("\t学号\t姓名\t性别\t年龄\t地址\n");
   while(s!= NULL)     
     {printf("\t%ld\t%s\t%c\t%d\t%s\n",s->date.num,s->date.name,s->date.sex,s->date.age,s->date.address); 
           s = s -> next ;
          
     }
     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;
 }



预期输出时个学生信息表 单输出的时候却换行了 还有就是性别无法输入 高手看看啊 

回复列表 (共3个回复)

沙发

请说明是哪里不对,编译器有什么出错提示,错误的输出是什么,预期输出是什么

板凳

很简单呀。

3 楼

性别用什么/c,还得改成/s.当作字符串来处理。

我来回复

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