回 帖 发 新 帖 刷新版面

主题:[讨论]请高手帮我看下,错在哪

#include <stdio.h>
#include <malloc.h>
#define NULL 0
typedef struct Lnode
{
 char data;
 struct Lnode *next;
  } linklist,*p,*L;

  int n;
  createlist(n)
 {
   int i;
   p=NULL;
   L=(linklist*)malloc(sizeof(Lnode));
   printf("input head data:/n");
   scanf("%c",&linklist->data);
   for(i=1;i<n;i++)
   {
     p=(linklist*)malloc(sizeof(Lnode));
     printf("input p data:/n");
     scanf("%c",&p->data);
     p->next=linklist->next;
     L->next=p;
     }
  }
  main()
  {
  printf("input a number:/n");
  scanf("%d",n);
  createlist(n);
  }

回复列表 (共3个回复)

沙发

//你的程序漏洞太多啊!
//我大概改了改!你参考一下吧!
#include <stdio.h>
#include <malloc.h>

#define NULL 0

typedef struct Lnode
{
    char data;
    struct Lnode *next;
 } linklist ;


 void createlist(int n) //建立链表,并初始化
 {
   int i;
   linklist *head,*p,*L;
   L=(linklist*)malloc(sizeof(Lnode));
   head=L;
   printf("input data: ");
   for(i=1;i<=n;i++)
   {
     p=(linklist*)malloc(sizeof(Lnode));
     scanf("%c",&p->data);
     L->next=p;
     L=p;
    }
  }

  void main()
  {
      int n;
      printf("input a number: ");
      scanf("%d",&n);
      createlist(n);
  }

板凳

你好像也是初学者?你的好多写法很不规范,我按照你的想法改了一下,其实编写字符串没那么复杂,你可以看看字符串的输入何输出函数,直接调用更方便!如gets()和puts();
下面是帮你改了的程序:
#include <stdio.h>
#include <malloc.h>
typedef struct Lnode
{
    char data;
    struct Lnode *next;
}linklist;

linklist* createlist()
 {
   int i;
   linklist *p,*L,*s;

   L=(linklist*)malloc(sizeof(linklist));
   s=L;
   printf("input head data:\n");
   p=(linklist*)malloc(sizeof(linklist));
   scanf("%c",&p->data);
   while(p->data!='\n')
   {
      s->next=p;
      s=p;
      p=(linklist*)malloc(sizeof(linklist));
      scanf("%c",&p->data);

    }
     s->next=NULL;
     return L;
  }
  print_linklist(linklist *L)
  {

    linklist *p;
    p=L->next;
    if(!p)
        printf("it is empty");
    else
       while(p)
       {printf("%c",p->data);p=p->next;}
    printf("\n");
  }
main()
{
   linklist *L;
   L=createlist();
   print_linklist(L);
   getch();
}
用的是win-tc,如果用其他编译只要把getch()去掉就ok了!

3 楼


呵呵,谢谢了啊,刚学数据结构,还有很多东西要向各位请教哦
1

我来回复

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