鱼C论坛

 找回密码
 立即注册
查看: 2845|回复: 13

[已解决]这程序怎么错了??

[复制链接]
发表于 2018-4-2 15:44:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-4-2 16:00:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 16:05:44 | 显示全部楼层
从提示来看是前面有问题,少了分号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-2 16:08:46 | 显示全部楼层
BngThea 发表于 2018-4-2 16:05
从提示来看是前面有问题,少了分号

大兄弟....我英语也没那么差
我的程序没少啊我不懂它为什么报这个错误和警告
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你用代码的格式贴出来,还得一行一行去找你的错误提示指向哪里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你说的啥意思??没明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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行
如果这样贴代码呢?
行号前面已经有了,不用从第一行开始数了

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

  3. typedef struct Dulnode{
  4.         int data;
  5.         struct Dulnode *prior;
  6.         struct Dulnode *next;
  7. }Dulnode,*Dulinklist;

  8. void initlist(Dulinklist *L)
  9. {
  10.         (*L)=(Dulinklist)malloc(sizeof(Dulnode));
  11.         if(!(*L))
  12.                 printf("无法正常分配空间,对不起哦!\n");
  13.         else
  14.         {
  15.                 (*L)->prior=(*L)->next=NULL;
  16.                 printf("初始化成功!");
  17.         }
  18. }


  19. void creatlist(Dulinklist *L)
  20. {
  21.         int n,i;
  22.         Dulinklist r,p;//指向尾节点
  23.         r=*L;
  24.         printf("请问您想输入几个元素:");
  25.         scanf("%d",&n);
  26.         for(i=0;i<n;i++)
  27.         {
  28.                 p=(Dulinklist)malloc(sizeof(Dulnode));
  29.                 if(!p)
  30.                         printf("无法正常分配空间,对不起哦~\n");
  31.                 else
  32.                 {
  33.                         printf("情书日第%d个元素",i+1);
  34.                         scanf("%d",&p->data);
  35.                         p->next=r->next;
  36.                         p->prior=r;
  37.                         r->next=p;
  38.                         r=p;
  39.                 }
  40. }

  41. void showlist(Dulinklist *L)
  42. {

  43.         Dulinklist p;
  44.         p=(*L)->next;
  45.         printf("该双向链表中的元素为:");
  46.         while(p)
  47.         {
  48.                 printf("%d ",p->data);
  49.                 p=p->next;
  50.         }
  51. }


  52. int main()
  53. {
  54.         Dulinklist L;
  55.         initlist(&L);
  56.         creatlist(&L);
  57.         showlist(&L);
  58.         return 0;
  59. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-2 16:19:42 | 显示全部楼层
人造人 发表于 2018-4-2 16:17
意思是
C:\Windows\System32\双向链表.c(46) : error C2143: syntax error : missing ';' before 'typ ...

我的编译器旁边没有写行号啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 16:20:59 | 显示全部楼层
愿你 发表于 2018-4-2 16:19
我的编译器旁边没有写行号啊

你双击错误信息,可以跳到有问题的哪一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 16:22:02 | 显示全部楼层    本楼为最佳答案   
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-2 16:22:12 | 显示全部楼层
人造人 发表于 2018-4-2 16:20
你双击错误信息,可以跳到有问题的哪一行

这个我懂 但是没有每一行都在旁边显示出来
只是你点错误信息,它会定位到那里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你在IDE的设置里面找一找,应该可以找的显示行号这个选项
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-2 16:23:27 | 显示全部楼层

你太棒了!!
我看花眼了都,没看到这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

OK我找找看~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 02:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表