回 帖 发 新 帖 刷新版面

主题:[原创]高手来找错!急

初学者,写了个程序,有错误,高手帮忙一下
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef int datatype;
 typedef struct link_node{
       datatype info;
       struct link_node *next;
 }  node ,*LinkList; 
node* creatlistr(void)
{ datatype data;   node *head,*s,*r;
  head=NULL;r=NULL;
  scanf("%d",&data);
  while (data)
   { s=(node *)malloc(sizeof(node));
     s->info=data;     
     if (head==NULL)   head=s;    
          else     r->next=s;
     r=s;  
     scanf("%d",&data);
   }               
if (r!=NULL)  r->next=NULL;
return head; 
}   
void print_hlink_list(node *head)
 {
   node *p;
   p=head;
   if(!p) printf("\n带头结点单链表是空的!");
   else
     {
       printf("\n带头结点的单链表各个结点的值为:\n");
       while(p) { printf("%5d",p->info);p=p->next;}
     }
 }             
void main()
{
    node *head;
    head=creatlistr(void);
    print_hlink_list(head);
}

回复列表 (共3个回复)

沙发


//帮你改好了啊!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef int datatype;

typedef struct link_node
{
    datatype info;
    struct link_node *next;
}node ,*LinkList; 

node* creatlistr(void)

    datatype data;   
    node *head,*s,*r;
    head=NULL;
    r=NULL;
    printf("Enter the value(-1 to quit): ");
    scanf("%d",&data);
    while (data!=-1)
    { 
        s=(node *)malloc(sizeof(node));
        s->info=data;     
        if(head==NULL)   
            head=s;    
        else    
            r->next=s;
        r=s;  
        scanf("%d",&data);
   }               
   if (r!=NULL)  
       r->next=NULL;
   return head; 
}  
 
void print_hlink_list(node *head)
{
   node *p;
   p=head;
   if(!p) 
       printf("\n带头结点单链表是空的!");
   else
   {
       printf("\n带头结点的单链表各个结点的值为: \n");
       while(p) 
       { 
           printf("%5d",p->info);
           p=p->next;
       }
   }
}  
           
void main()
{
    node *head;
    head=creatlistr();
    print_hlink_list(head);
    printf("\n");
}
 

板凳

随便看了一下,好像只要把head=creatlistr(void);改成head=creatlistr();就正确了!自己再看看

3 楼

把head=creatlistr(void)改成head=creatlistr();
就可以了

我来回复

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