C 歌手大赛实例


有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分,去掉一个最高分,去掉一个最低分,剩下分数的平均值最为每位选手的最后成绩 要求:
1、采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数; 2、从键盘输入每个选手的相关信息:参赛编号,姓名和十个得分; 3、计算每位选手的最后得分,并按分数由高到低排序; 4、查询功能:输入参赛选手的编号或姓名,便可输出该选手的得分以及排名;

源码如下:

#include <stdio.h>
void ShowSingerData();
void AddNewSingeData();

#define USER_LEN   16
#define SOCRE_LEN  10
#define MAX_SINGER 10

struct s_Singer
{
        float avgScore ;        // 歌手平均分
        int score[SOCRE_LEN]  ; // 歌手分数记录
        int  num;               // 参赛编号
        char name[ USER_LEN ] ; // 歌手名字

        struct s_Singer* pNext ;
        struct s_Singer* pPrev ;
};


static int g_CurSingerNum ;                   // 当前歌手编号
static struct s_Singer g_Singers[MAX_SINGER]; // 参赛的歌手
static struct s_Singer* g_SingerList;         // 比赛后的歌手排名表

void ShowCmd()
{
        char cmd = '