题目描述
在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排列,从而自动产生冠军、亚军和季军。现在要求编写一程序模拟实现上述系统的功能。
(1) 在本例中首先输入参赛选手的人数(范围为1-9个);
(2) 将选手的编号和姓名依次存入顺序表单元中;
(3) 观众通过按键进行投票,按“1”为1号选手投票,按“2”为2号选手投票,以此类推,已按零作为投票结束标志;
(4) 投票结束后进行排序,然后为每个选手计算名次,得票相同的名次也相同。
(5) 在主函数中调用菜单函数调试程序。
存储类型的定义
参赛选手信息存储类型的定义:
typedef struct node{
char name[8]; //选手姓名
int num; //选手编号
int score; //选手得分
int tax; //选手名次
}Node;
(请使用滚轮下翻)
#include
#include
typedef struct Score
{
char AthleteName[20];
char SchoolName[20];
int SchoolCode;
int Rank;
char Achievement[10];
} Score;
typedef struct Match
{
int MatchCode;
char MatchName[10];
int Top;
Score *RankList;//比赛项目里面包含着分数(储存结构层面)
} Match, *Event;
typedef struct Record
{
int MatchCode;
char MatchName[10];
int Rank;
char Achievement[10];
char AthleteName[20];
int GetScore;
} Record;
typedef struct School
{
char SchoolName[20];
int num;
int ptr;
Record *RecordList;
} School, *SchoolSheet;
typedef struct Team
{
int SchoolCode;
char SchoolName[20];
int ManTotal;
int WomanTotal;
int TeamTotal;
} Team, *All;
int n, m, w, t;
Event A;
SchoolSheet B;
All C;
int ScoreList[8] = {5, 3, 2, 7, 5, 3, 2, 1};
void Start()
{