Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2539609
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2011-06-07 12:34:40

    在选美比赛的现场,有一批选手参加比赛,比赛的规则是最后得分最高,名次越低。当比赛结束时,要在比赛现场按照选手的出场顺序,宣布最后得分和最后名次。获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。
  1. #include <stdio.h>
  2. struct player{
  3.      int num;
  4.      int score;
  5.      int rand;
  6. };

  7. void sortScore(struct player psn[], int n)
  8. {
  9.      int i,j;
  10.      struct player tmp;
  11.      for(i=0; i<n-1; i++)
  12.      for(j=0; j<n-1-i; j++){
  13.      if(psn[j].score > psn[j+1].score){
  14.          tmp = psn[j];
  15.          psn[j] = psn[j+1];
  16.          psn[j+1] = tmp;
  17.      }
  18.      }
  19. }

  20. void setRand(struct player psn[], int n)
  21. {
  22.      int i,j = 2;
  23.      psn[0].rand = 1;
  24.      for(i=1; i<n; i++){
  25.      if(psn[i].score != psn[i-1].score){
  26.      psn[i].rand = j;
  27.      j++;
  28.      }else{
  29.      psn[i].rand = psn[i-1].rand;
  30.      }
  31.      }
  32. }

  33. void sortNum(struct player psn[], int n)
  34. {
  35.      int i,j;
  36.      struct player tmp;
  37.      for(i=0; i<n-1; i++)
  38.      for(j=0; j<n-1-i; j++){
  39.      if(psn[j].num > psn[j+1].num){
  40.          tmp = psn[j];
  41.          psn[j] = psn[j+1];
  42.          psn[j+1] = tmp;
  43.      }
  44.      }
  45. }

  46. void sortRand(struct player psn[], int n)
  47. {
  48.      sortScore(psn, n);
  49.      setRand(psn, n);
  50.      sortNum(psn, n);
  51. }


  52. int main(int argc, char* argv[])
  53. {
  54.      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}};
  55.      int i;
  56.      sortRand(psn,7);
  57.      printf("num score rand \n");
  58.      for(i=0; i<7; i++){
  59.      printf("%d%8d%9d\n",psn[i].num,psn[i].score,psn[i].rand);
  60.      }
  61.      return 0;
  62. }
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out 
num    score    rand     
1       5        3
2       3        1
3       4        2
4       7        5
5       3        1
6       5        3
7       6        4

阅读(2645) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~