注册 登录
编程论坛 数据结构与算法

代码没有语法错误,链接通不过,求解决

sunxueguang1 发布于 2013-04-24 20:33, 1555 次点击
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct node
{
    int data;
    struct node *next;
}lnode,*linklist;
creatlist(linklist l)
{
    lnode *p,*q;
    int i,j;   
    for(i=0;i<=9;i++)
    {
        p=(lnode *)malloc(sizeof(lnode));
        p->next=l->next;
        l->next=p;
    }
    q=l->next;
    for(j=0;j<=9;j++)
    {
        srand(time(NULL));
        q->data=rand()%50;
        q=q->next;
    }
}
mian()
{
    linklist l1,l2;
    lnode *p;
    //int e;
    l1=(linklist *)malloc(sizeof(lnode));
    creatlist(l1);
    p=l1->next;
    while(p!=NULL)
    {
        printf("%d",p->data);
        p=p->next;
    }
    printf("\n");
}
11 回复
#2
韶志2013-04-24 21:07
看起来没啥问题啊
#3
sunxueguang12013-04-24 21:09
回复 2楼 韶志
提示这个错误
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/期中.exe : fatal error LNK1120: 1 unresolved externals
我找不到
#4
hg654321free2013-04-24 21:20
是类型数据错了? 我编译器打开不了。 随便说说。
#5
韶志2013-04-24 21:20
main函数里面的这条语句   l1=(linklist *)malloc(sizeof(lnode));   
星号去掉   linklist本来就是指针类型了

还有注意下:
creatlist函数前面最好加一个void
main函数后面return 0;
#6
sunxueguang12013-04-24 21:26
回复 4楼 hg654321free
不好意思,我按你说的改了,还是连接通不过啊!
#7
韶志2013-04-24 21:52
为什么我可以通过连接?
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct node
{
    int data;
    struct node *next;
}lnode,*linklist;
void creatlist(linklist l)
{
    lnode *p,*q;
    int i,j;   
    for(i=0;i<=9;i++)
    {
        p=(lnode *)malloc(sizeof(lnode));
        p->next=l->next;
        l->next=p;
    }
    q=l->next;
    for(j=0;j<=9;j++)
    {
        srand(time(NULL));
        q->data=rand()%50;
        q=q->next;
    }
}
mian()
{
    linklist l1,l2;
    lnode *p;
    //int e;
    l1=(linklist )malloc(sizeof(lnode));
    creatlist(l1);
    p=l1->next;
    while(p!=NULL)
    {
        printf("%d",p->data);
        p=p->next;
    }
    printf("\n");
    return 0;
}

 
#8
笑傲2013-04-24 21:53
回复 6楼 sunxueguang1
是main写错了,你写成了mian了
#9
hg654321free2013-04-24 21:55
复制下去都连接不了
#10
hg654321free2013-04-24 21:58
main函数也写错,看见只打印一个数呀。
#11
邓士林2013-04-25 20:59
主要是你的线性表的定义问题,你定义的然后你又不明白怎么调用、然后又分配内存空间,给你修改下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct node
{
    int data;
    struct node *next;
}lnode,linklist;
void creatlist(linklist l)
{
    lnode *p,*q;
    int i,j;   
    for(i=0;i<=9;i++)
    {
        p=(lnode *)malloc(sizeof(lnode));
        p->next=l.next;
        l.next=p;
    }
    q=l.next;
    for(j=0;j<=9;j++)
    {
        srand(time(NULL));
        q->data=rand()%50;
        q=q->next;
    }
}
void main()
{
    linklist l1,l2;
    lnode *p;
    //int e;
    creatlist(l1);
    p=l1.next;
    while(p!=NULL)
    {
        printf("%d",p->data);
        p=p->next;
    }
    printf("\n");
}
#12
sunxueguang12013-05-01 11:26
回复 8楼 笑傲
谢谢!我太粗心了
1