文档介绍:中央广播电视大学实验报告(学科:数据结构)
姓名单位班级学号实验日期
成绩评定教师签名批改日期
实验名称:实验一线性表
线性表的链式存储结构
【问题描述】
某项比赛中,评委们给某参赛者的评分信息存储在一个带头结点的单向链表中,编写程序:
显示在评分中给出最高分和最低分的评委的有关信息(姓名、年龄、所给分数等)。
在链表中删除一个最高分和一个最低分的结点。
计算该参赛者去掉一个最高分和一个最低分后的平均成绩。
【基本要求】
建立一个评委打分的单向链表;
显示删除相关结点后的链表信息。
显示要求的结果。
【实验步骤】
运行PC中的Microsoft Visual C++ ,
点击“文件”→“新建”→对话窗口中“文件”→“c++ Source File”→在“文件名”中输入“”→在“位置”中选择储存路径为“桌面”→“确定”,
输入程序代码,
程序代码如下:
#include <>
#include <>
#include <>
#include <>
#include <>
#define NULL 0
#define PWRS 5 //定义评委人数
struct pw //定义评委信息
{ char name[6];
float score;
int age;
};
typedef struct pw PW;
struct node //定义链表结点
{struct pw data;
struct node * next;
};
typedef struct node NODE;
NODE *create(int m); //创建单链表
int calc(NODE *h); //计算、数据处理
void print(NODE *h); //输出所有评委打分数据
void input(NODE *s);//输入评委打分数据
void output(NODE *s);//输出评委打分数据
void main()
{
NODE *head;
float ave=0;
float sum=0;
head=create(PWRS);
printf("所有评委打分信息如下:\n");
print(head);//显示当前评委打分
calc(head);//计算成绩
printf("该选手去掉 1 最高分和 1 最低分后的有效评委成绩:\n");
print(head);//显示去掉极限分后的评委打分
}
void input(NODE *s)
{
printf("请输入评委的姓名: ");
scanf("%S",&s->);
printf("年龄: ");
scanf("%d",&s->);
printf("打分: ");
scanf("%f",&s->);
printf("\n");
}
void output(NODE *s)
{
printf("评委姓名: %8s ,年龄: %