| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 581 人关注过本帖
标题:链表出了点问题,实在找不出bug在哪里了,帮帮指点一下吧
只看楼主 加入收藏
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
结帖率:100%
收藏
 问题点数:0 回复次数:5 
链表出了点问题,实在找不出bug在哪里了,帮帮指点一下吧
程序代码:
# include <stdio.h>
# include <stdlib.h>
# define LEN sizeof(struct Student)
typedef struct Student{
    int num;
    float score;
    struct Student *pnext;
    
}NODE;

int n=0;

NODE*CreatList(void)
{
    NODE*phead=NULL;
    NODE*p1,*p2;
    int t_num;
    
    //得到一个t_num的合法值 
    while(1!=scanf("%d",&t_num))
    {
        fputs("输入错误\n",stderr);
        int ch;
        while((ch=getchar())!=EOF && ch!='\n')
        continue;
    }
    //判断t_num是否为整数 
    while(t_num>0)
    {
        n++;
        if(n==1)
        {
            p1=(NODE*)malloc(LEN); //p1分配空间 
            p2=p1;
        }
        
        
        else
         p1=(NODE*)malloc(LEN); //p1分配空间 
        //检查p1是否分配成功 
        if(p1==NULL)
        {
            fputs("内存分配发生错误!\n",stderr);
            exit(1);
        }
        
        //补全结构体信息 
        p1->num=t_num;//临时值补到p1 
        scanf("%f",&p1->score); 
        
        
        if(phead==NULL)
         phead=p1;
        else 
         p2->pnext=p1; 
        
        
        p2=p1;
        
        while(1!=scanf("%d",&t_num))
        {
            fputs("输入错误\n",stderr);
            int ch;
            while((ch=getchar())!=EOF && ch!='\n')
            continue;
        }
        
        
    }
    
    p1->pnext=NULL; 
    
}


int main (void)
{
    
    NODE *p;
    
    p=CreatList();    
    
    while(p!=NULL)
    {
        printf("%d  %.3f",p->num,p->score);
        p=p->pnext;
    }
    //这里只能输出最后一个节点的信息,why? 
    
    return 0;
}
搜索更多相关主题的帖子: color 
2015-04-18 20:09
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
我大意了,Creatlist()最后 没有写 return phead;

你醒了?快起来敲代码!!
2015-04-18 23:22
阿牛的逆袭
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-10-18
收藏
得分:0 
2015-04-18 23:23
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
脑子乱了,这编译器也傻。

你醒了?快起来敲代码!!
2015-04-18 23:25
谦逊小子
Rank: 2
等 级:论坛游民
帖 子:20
专家分:44
注 册:2014-10-10
收藏
得分:0 
用fputs不用将文件打开吗,再用?
2015-04-19 09:10
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
回复 5楼 谦逊小子
标准输出(stdout),标准输入(stdin),标准错误(stderr)  这3个文件是自动打开的,不需要用fopen()

你醒了?快起来敲代码!!
2015-04-19 15:08
快速回复:链表出了点问题,实在找不出bug在哪里了,帮帮指点一下吧
数据加载中...
 
   



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

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