| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1607 人关注过本帖
标题:[求助]学生成绩链表建立~
取消只看楼主 加入收藏
gioxiao
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-14
收藏
 问题点数:0 回复次数:3 
[求助]学生成绩链表建立~
#include "stdio.h"
#include "malloc.h"
typedef struct student
{
int num;
char name[9];
float score[3];
struct student *next;
}Lnode;
#define LEN sizeof(struct student)
typedef Lnode *Llist;
Lnode *jianli(void)
{
int i;
Lnode *head=(Lnode *)malloc(LEN);
Llist p,r;
r=head;
do
{
p=(Lnode *)malloc(LEN);
printf("请输入学号: ");
scanf("%d",&p->num);
if(p->num==0)
break;
printf("请输入姓名: ");
scanf("%s",p->name);
printf("请输入3门成绩\n");
for(i=0;i<3;i++)
{
printf("成绩: ");
scanf("%f",&p->score[i]);
}
r->next=p;
r=p;
printf("\n\n");
}while(p->num!=0);
r->next=NULL;
return head;
}
请问我这个链表输入三门成绩的写法有什么错误.....
为什么一到输入成绩的时候就弹出错误信息..
我换成了不用循环读入三门成绩,,也出了错..
但是
当我写成这样的时候:
printf("成绩1");
scanf("%f",&(p->score[0]));
就不出错了,但是我就写这一句,下面有句并没有把p->score[]用()框起来...
迷惑了....请大家指点指点..
搜索更多相关主题的帖子: 链表 学生 
2006-11-08 20:25
gioxiao
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-14
收藏
得分:0 
先谢谢楼上的朋友..
HEAD=(Lnode *)malloc(LEN);
是开辟一个头结点.不是开辟第一个结点,
所以不用对他进行输入植.它只是储存第一结点的地址.
我现在疑惑的是&(p->score[i])...
2006-11-10 02:03
gioxiao
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-14
收藏
得分:0 

我建立的这个链表完全没问题..只是在对成绩进行输入的时候产生错误.
并且现在已经没问题了..
至于头结点,当然不用输入植,我觉得它的用处就是让所有结点的处理变的一致..
比较方便...我先让R指针指向HEAD.当建立一个新的结点.就让R指针指向新结点.然后再建立下一个结点~
返回HEAD..是因为HEAD是头指针..我建立一个连表...不返回头指针怎么建立的了?

[此贴子已经被作者于2006-11-10 13:31:55编辑过]

2006-11-10 13:29
gioxiao
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-14
收藏
得分:0 
HEAD是指向头结点的....头结点是第0个结点.那么我进行计算的时候也方便点...直接从第一个结点开始计算.
但是HEAD还是整个链表的头指针吧~

完整的程序开始就贴出来了...

2006-11-10 14:13
快速回复:[求助]学生成绩链表建立~
数据加载中...
 
   



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

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