标题:@帮忙看看,刚学链表,实在不懂改哪里(另一种做法)
只看楼主
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
结帖率:100%
已结贴  问题点数:20 回复次数:9 
@帮忙看看,刚学链表,实在不懂改哪里(另一种做法)
#include<stdio.h>
#include<malloc.h>
struct student
{long num;
 int scor;
 struct student *next;
};
#define NULL 0
#define LEN sizeof(struct student)
struct student *fun()
{  int n=0,y;
  long   x;
    struct student *p1,*p2,*head=NULL;
    scanf("%ld,%d",&x,&y);
    while(x!=0)
    { p1=(struct student *)malloc(LEN);
    p1->num=x;
    p1->scor=y;
    n++;
    if(n==1)
        head=p2=p1;
    else
    {p2->next=p1;
    p2=p1;
    }
    scanf("%ld,%d",&x,&y);
    }
    p2->next=NULL;
    return(head);
}
void printf(struct student *head)
{
    struct student *p1;
  p1=head;
  while(p1!=NULL)
  {printf("%ld,%d",p1->num,p1->scor);
  p1=p1->next;}
  printf("\n");
}
void main()
{struct student *head;
 head=fun();
 printf(head);
}



[ 本帖最后由 浪漫横行 于 2013-5-20 12:44 编辑 ]
搜索更多相关主题的帖子: long next include 
2013-05-18 14:02
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
得分:6 
void printf(struct student *head)
{
    struct student *p1;
  p1=head;
  while(p1!=NULL)
  {printf("%ld,%d",P1->num,p1->scor);               //这里写错了
  p1=p1->next;}
  printf("\n");
}
出错信息中写的明明白白!

练就一身本领,只为笑傲江湖!
2013-05-18 14:19
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:6 
给你两点建议,首先这种错误要自己学着调试,然后慢慢就提高了,其次要注意拼写,你这个就是这样错误来的,P1和p1是两码事,大小写问题!
void printf(struct student *head)
{
    struct student *p1;           //小写
  p1=head;
  while(p1!=NULL)
  {printf("%ld,%d",P1->num,p1->scor);                    //大写P1->num
  p1=p1->next;}
  printf("\n");
}

Maybe
2013-05-18 14:49
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
得分:0 
回复 2楼 笑傲
嗯嗯,失误了,为什么输入数据,却得不到正确输出??
2013-05-18 21:18
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
得分:0 
回复 3楼 邓士林
嗯嗯,为什么输入数据,却得不到正确输出??
2013-05-18 21:35
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
得分:6 
回复 5楼 浪漫横行
楼主马虎,忘了给scor赋值了,在p1->num=x后面加上p1->scor=y,在输入正确的前提下就可以输出正确答案了
2013-05-19 00:25
Amore_Mio
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2013-5-18
得分:1 
void printf(struct student *head)
{
    struct student *p1;
  p1=head;
  while(p1!=NULL)
  {printf("%ld,%d",p1->num,p1->scor);
  p1=p1->next;}
  printf("\n");
}

这样定义printf行吗?
2013-05-19 07:57
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
得分:1 
LZ,你这样能做出一链表吗?怀疑中。。。
2013-05-19 10:42
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
得分:0 
回复 6楼 遮天云
已改了,但还是运行不出正确结果??请指教,我是新手
2013-05-20 12:46
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
得分:0 
回复 8楼 YJ_Hao
指教一下,我还是新手,自己刚学链表。。看不出错误在哪
2013-05-20 12:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-407405-1-1.html




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

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