鱼C论坛

 找回密码
 立即注册
查看: 3330|回复: 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行
如果这样贴代码呢?
行号前面已经有了,不用从第一行开始数了
# 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: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-12-24 21:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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