| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 839 人关注过本帖
标题:新手求助链表的问题
只看楼主 加入收藏
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
结帖率:94.74%
收藏
 问题点数:0 回复次数:9 
新手求助链表的问题
我的源程序是这样:
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct ST
{
        int i;
        char c;
        struct ST *next;
}*tou,*wei,*yuanshi;
int main(void)
{
        int i=0,j;
        printf("键入‘*’符结束操作,其它健继续:\n");
        while(1)
        {
                printf("%c\n",tou->c=getch());
                if(tou->c=='*')        break;
                while(tou=(struct ST*)malloc(sizeof(struct ST)))
                {
                        if(i==0)
                        {
                                tou=NULL;
                                yuanshi=tou;
                                wei=tou;
                        }
                        else
                        {
                                wei->next=tou;
                                wei=tou;
                        }
                        printf("OK!\n键入‘*’符结束,其它键继续:\n");
                        break;
                }
                tou->i=i;
                i++;
        }
        tou=NULL;
        for(j=0;j<i;j++)
        {
                printf("%5d%5c%5d\n",j,tou->c,tou->i);
                tou=tou->next;
        }
        getch();
}


    当我输入a b c d e f *  时,输出却是 b c d e f * ,不知道前面的 a  弄哪去了,怎么修改?还望各位帮下忙,谢谢。

    再说几句题外话,近段时间太忙,每天高强度工作达十多个小时之久,所以把C的学习耽误了。但还是尽量抽出时间来学习,所以请朋友们不必拿我开涮,说我是“大个儿的牛”,大家就拿我当才学二个月的新手来对待就可以了(其实我也就是这个水平)。谢谢大家。
搜索更多相关主题的帖子: 链表 
2008-08-01 22:34
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
请各位高手们指点迷津,谢谢。
2008-08-02 22:22
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
牛哥,小菜帮你顶起来!
2008-08-02 22:28
Rand
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-7-2
收藏
得分:0 
第一次进去的时候tou只是个指针,没有开辟内存空间,赋值到tou->c是不可能的。
我奇怪的是为什么你编译器不会出错,还能运行。
2008-08-03 00:19
Rand
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-7-2
收藏
得分:0 
你i=0的初始化也将tou重定向到了一个空地址,就算前面记下了也没用
2008-08-03 00:36
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
谢谢Rand朋友的帮助
已把程序更改,在申请内存之后再赋值,已解决。谢谢。

编译器是WIN-TC,有点古老了,不过用着顺手,先将就着吧。

再次表示感谢,谢谢你了。
2008-08-03 01:23
Rand
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-7-2
收藏
得分:0 
不用客气,不过你初始化将tou重定位了,a还是没有吧?
2008-08-03 01:39
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
有了,我先定义个字符变量 C ,然后用getch()为 C 赋值,再通过 tou->c=c;来为它赋值。

    现在问题已经解决,a已经出现,不过最后的*却没了。不过我想通过自己的努力,可以出现的,谢谢。
2008-08-03 01:46
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
广````换个IDE吧``

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-08-03 02:15
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
[bo][un]Rand[/un] 在 2008-8-3 00:19 的发言:[/bo]

第一次进去的时候tou只是个指针,没有开辟内存空间,赋值到tou->c是不可能的。
我奇怪的是为什么你编译器不会出错,还能运行。

呵呵~~说得好。我也学习了。
以前我总想:在链表中,头指针到底有没有自己的数据域呢?
现在明白了:没有!
比如,在单链的尾插入法中,就需要一个头指针指向第一个结点,还需要一个尾指针记录最后一个结点(以方便从尾部插入)。假如,这头指针和尾指针都有自己的数据域,那问题就大了。
2008-08-03 08:07
快速回复:新手求助链表的问题
数据加载中...
 
   



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

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