| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 873 人关注过本帖
标题:高手 看不出那里错了 帮忙看看 谢谢哈 链表
只看楼主 加入收藏
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
结帖率:92.86%
收藏
已结贴  问题点数:10 回复次数:15 
高手 看不出那里错了 帮忙看看 谢谢哈 链表
#include <stdio.h>

typedef struct node
{
    char info;
    struct node *next;
}headlink;

void main()
{
    headlink *head;
    head=creat();
    print(head);
    getch();
}

headlink *creat()
{
    headlink *head, *p;
    char c;
    head=NULL;
    while((c=getchar())!='\n')
    {
        p=(headlink *)malloc(sizeof(headlink));
        p->info=c;
        p->next=head;
        head=p;
    }
    return (head);
}

void print(headlink *head)
{
    headlink *p;
    p=head;
    while(p)
    {
        putchar(p->info);
        p=p->next;
    }
}
编译不过 怎么会回事 看不出那里错了 帮忙看看
搜索更多相关主题的帖子: include return 
2015-10-24 09:57
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:5 
main函数移到最后,可不需要声明函数,getch()是conio.h里的函数,malloc()是stdlib.h里的

能编个毛线衣吗?
2015-10-24 10:04
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:5 
程序代码:
#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
typedef struct node
{
    char info;
    struct node *next;
}headlink;
headlink *creat(); 
void print(headlink *head);
main()
{
    headlink *head;
    head=creat();
    print(head);
    getch();
}

headlink *creat()
{
    headlink *head, *p;
    char c;
    head=NULL;
    while((c=getchar())!='\n')
    {
        p=(headlink *)malloc(sizeof(headlink));
        p->info=c;
        p->next=head;
        head=p;
    }
    return (head);
}

void print(headlink *head)
{
    headlink *p;
    p=head;
    while(p)
    {
        putchar(p->info);
        p=p->next;
    }
}

剑栈风樯各苦辛,别时冰雪到时春
2015-10-24 10:06
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
还有 在headlink *created()函数里 一直建立节点知道输入一个值为回车 才结束 那么这个链表的头节点的数据域也是有数据的  是么   而链表的头节点的数据域是不能有数据的   这个怎么办????????

不要不要的。。。
2015-10-24 10:15
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 2楼 wmf2014
恩恩 好的

不要不要的。。。
2015-10-24 10:20
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 3楼 林月儿
恩恩 可以了  还有个问题不理解

不要不要的。。。
2015-10-24 10:21
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
  恩恩  我知道了 可以这样 改一下
给head指针分配一个内存
head=(headlink *)malloc(sizeof(headlink));
head->next=NULL;
while(p)

    p=(headlink *)malloc(sizeof(headlink));
    p->info=c;
    p->next=head->next;
    head->next=p;



不要不要的。。。
2015-10-24 10:37
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 

剑栈风樯各苦辛,别时冰雪到时春
2015-10-24 11:39
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 8楼 林月儿
恩恩  还有这个

head—>next=p;
q=p;


是不是在这个链表中的这个p节点的名称就换成q了
之后还有
q->next=p;
q=p;


我是在用循环建立一个单循环链表;新的p节点不断生成的;

不要不要的。。。
2015-10-25 21:41
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
以下是引用露营地在2015-10-25 21:41:45的发言:

恩恩  还有这个

head—>next=p;
q=p;


是不是在这个链表中的这个p节点的名称就换成q了
之后还有
q->next=p;
q=p;


我是在用循环建立一个单循环链表;新的p节点不断生成的;



其实上面的代码里面的逻辑没什么问题,不过判断条件有点问题。
先说说你的这个
head—>next=p;
q=p;
是不是在这个链表中的这个p节点的名称就换成q了
准确的说p表示的结点又有q来表示了,就是说一个地址多个变量来表示!
我是在用循环建立一个单循环链表;新的p节点不断生成的;
p不断生成那么p与NULL的比较不应该是建立链表的循环判断条件

剑栈风樯各苦辛,别时冰雪到时春
2015-10-25 21:53
快速回复:高手 看不出那里错了 帮忙看看 谢谢哈 链表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017977 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved