愿你 发表于 2018-4-2 15:44:27

这程序怎么错了??

我明明都已经声明定义了,为什么还有这种错误和提示

C:\Windows\System32\双向链表.c(46) : error C2143: syntax error : missing ';' before 'type'
C:\Windows\System32\双向链表.c(65) : warning C4013: 'showlist' undefined; assuming extern returning int

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

typedef struct Dulnode{
        int data;
        struct Dulnode *prior;
        struct Dulnode *next;
}Dulnode,*Dulinklist;

void initlist(Dulinklist *L)
{
        (*L)=(Dulinklist)malloc(sizeof(Dulnode));
        if(!(*L))
                printf("无法正常分配空间,对不起哦!\n");
        else
        {
                (*L)->prior=(*L)->next=NULL;
                printf("初始化成功!");
        }
}


void creatlist(Dulinklist *L)
{
        int n,i;
        Dulinklist r,p;//指向尾节点
        r=*L;
        printf("请问您想输入几个元素:");
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
                p=(Dulinklist)malloc(sizeof(Dulnode));
                if(!p)
                        printf("无法正常分配空间,对不起哦~\n");
                else
                {
                        printf("情书日第%d个元素",i+1);
                        scanf("%d",&p->data);
                        p->next=r->next;
                        p->prior=r;
                        r->next=p;
                        r=p;
                }
}

void showlist(Dulinklist *L)
{

        Dulinklist p;
        p=(*L)->next;
        printf("该双向链表中的元素为:");
        while(p)
        {
                printf("%d ",p->data);
                p=p->next;
        }
}


int main()
{
        Dulinklist L;
        initlist(&L);
        creatlist(&L);
        showlist(&L);
        return 0;
}

愿你 发表于 2018-4-2 16:00:04

@人造人

BngThea 发表于 2018-4-2 16:05:44

从提示来看是前面有问题,少了分号

愿你 发表于 2018-4-2 16:08:46

BngThea 发表于 2018-4-2 16:05
从提示来看是前面有问题,少了分号

大兄弟....我英语也没那么差{:10_256:}
我的程序没少啊{:10_250:}我不懂它为什么报这个错误和警告

BngThea 发表于 2018-4-2 16:10:10

愿你 发表于 2018-4-2 16:08
大兄弟....我英语也没那么差
我的程序没少啊我不懂它为什么报这个错误和警告

你用代码的格式贴出来,还得一行一行去找你的错误提示指向哪里

愿你 发表于 2018-4-2 16:13:04

BngThea 发表于 2018-4-2 16:10
你用代码的格式贴出来,还得一行一行去找你的错误提示指向哪里

你说的啥意思??没明白{:10_245:}

人造人 发表于 2018-4-2 16:17:23

愿你 发表于 2018-4-2 16:13
你说的啥意思??没明白

意思是
C:\Windows\System32\双向链表.c(46) : error C2143: syntax error : missing ';' before 'type'
C:\Windows\System32\双向链表.c(65) : warning C4013: 'showlist' undefined; assuming extern returning int
编译器告诉你46行和65行有问题
但是你上面那样贴代码,要知道46行和65行就需要从第一行开始数,数到46行,数到65行
如果这样贴代码呢?
行号前面已经有了,不用从第一行开始数了

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

typedef struct Dulnode{
      int data;
      struct Dulnode *prior;
      struct Dulnode *next;
}Dulnode,*Dulinklist;

void initlist(Dulinklist *L)
{
      (*L)=(Dulinklist)malloc(sizeof(Dulnode));
      if(!(*L))
                printf("无法正常分配空间,对不起哦!\n");
      else
      {
                (*L)->prior=(*L)->next=NULL;
                printf("初始化成功!");
      }
}


void creatlist(Dulinklist *L)
{
      int n,i;
      Dulinklist r,p;//指向尾节点
      r=*L;
      printf("请问您想输入几个元素:");
      scanf("%d",&n);
      for(i=0;i<n;i++)
      {
                p=(Dulinklist)malloc(sizeof(Dulnode));
                if(!p)
                        printf("无法正常分配空间,对不起哦~\n");
                else
                {
                        printf("情书日第%d个元素",i+1);
                        scanf("%d",&p->data);
                        p->next=r->next;
                        p->prior=r;
                        r->next=p;
                        r=p;
                }
}

void showlist(Dulinklist *L)
{

      Dulinklist p;
      p=(*L)->next;
      printf("该双向链表中的元素为:");
      while(p)
      {
                printf("%d ",p->data);
                p=p->next;
      }
}


int main()
{
      Dulinklist L;
      initlist(&L);
      creatlist(&L);
      showlist(&L);
      return 0;
}

愿你 发表于 2018-4-2 16:19:42

人造人 发表于 2018-4-2 16:17
意思是
C:\Windows\System32\双向链表.c(46) : error C2143: syntax error : missing ';' before 'typ ...

我的编译器旁边没有写行号啊{:10_266:}

人造人 发表于 2018-4-2 16:20:59

愿你 发表于 2018-4-2 16:19
我的编译器旁边没有写行号啊

你双击错误信息,可以跳到有问题的哪一行

人造人 发表于 2018-4-2 16:22:02


愿你 发表于 2018-4-2 16:22:12

人造人 发表于 2018-4-2 16:20
你双击错误信息,可以跳到有问题的哪一行

这个我懂 但是没有每一行都在旁边显示出来
只是你点错误信息,它会定位到那里

人造人 发表于 2018-4-2 16:23:18

愿你 发表于 2018-4-2 16:22
这个我懂 但是没有每一行都在旁边显示出来
只是你点错误信息,它会定位到那里

你在IDE的设置里面找一找,应该可以找的显示行号这个选项

愿你 发表于 2018-4-2 16:23:27

人造人 发表于 2018-4-2 16:22


你太棒了!!
我看花眼了都,没看到这个问题{:10_282:}

愿你 发表于 2018-4-2 16:26:02

人造人 发表于 2018-4-2 16:23
你在IDE的设置里面找一找,应该可以找的显示行号这个选项

OK我找找看~{:10_297:}
页: [1]
查看完整版本: 这程序怎么错了??