c语言计算选美比赛

题目要求:

在选美比赛的现场,有一批选手参加比赛,比赛的规则是最后得分越高,名次越低。当比赛结束时,要在现场按照选手的出场顺序(即选手的序号)宣布最后得分和最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。例如:

选手序号为: 1,2,3,4,5,6,7

选手得分为: 5,3,4,7,3,5,6

则输出名次为: 3,1,2,5,1,3,4

请编程帮助大赛组委会完成比赛的评分和排名工作。

需要掌握的知识是排序算法,可以去了解顺序排序、折半排序、快速、冒泡等,都是编程经常用到的知识点。

#include "stdio.h"
struct player{
  int num;
  int score;
  int rand;
} ;

void sort(struct player psn[],int n){
	int i;
	printf("num   score rand  
");
	for(i=0;ipsn[j+1].score)
        {
            tmp = psn[j];
            psn[j] = psn[j+1];
            psn[j+1] = tmp;
        }
    }
	sort(psn,n);
}

void setRand(struct player psn[],int n)//分配名次排序
{
    int i,j=2;
    psn[0].rand=1;
    for(i=1;ipsn[j+1].num)
        {
            tmp = psn[j];
            psn[j] = psn[j+1];
            psn[j+1] = tmp;
        }
    }
}

void sortRand(struct player psn[],int n)
{
   sortScore(psn,n);        	/*以分数为关键字排序*/
   setRand(psn,n);          	/*按照分数排名次*/
   sortNum(psn,n);         	/*按照序号重新排序*/
}

main()
{
   struct player psn[7]={{1,5,0},{2,3,0},{3,4,0},{4,7,0},
   {5,3,0},{6,5,0},{7,6,0}};	/*初始化测试数据*/
   int i;
   sortRand(psn,7);
   /*
   printf("num   score rand  
");
   for(i=0;i<7;i++)
   {
        printf("%d%6d%6d
",psn[i].num,psn[i].score,psn[i].rand);
   }*/
   sort(psn,7);
   getche();
}

运行结果:

c语言计算选美比赛

运行结果

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章