2:
struct player {
int num;
int score;
int rand;
7: } ;
8:
// 根据对选手的得分排序
int n)
11: {
int i, j;
struct player tmp;
14:
for(i = 0; i < n - 1; i++)
for(j = 0; j < n - 1 - i; j++)
17: {
if(psn[j].score > psn[j+1].score)
19: {
20: tmp = psn[j];
21: psn[j] = psn[j+1];
22: psn[j+1] = tmp;
23: }
24: }
25: }
26:
// 对已经根据得分排过序的选手,进行排名赋值
int n)
29: {
int i, j = 2;
31: psn[0].rand = 1;
32:
for(i = 1; i < n; i++)
34: {
if(psn[i].score != psn[i-1].score )
36: {
37: psn[i].rand = j;
38: j++;
39: }
else
41: psn[i].rand = psn[i-1].rand;
42:
43: }
44: }
45:
// 再按选手序号进行排序
int n)
48: {
int i, j;
struct player tmp;
51:
for(i = 0; i < n - 1; i++)
for(j = 0; j < n - 1 - i; j++)
54: {
if(psn[j].num > psn[j+1].num)
56: {
57: tmp = psn[j];
58: psn[j] = psn[j+1];
59: psn[j+1] = tmp;
60: }
61: }
62: }
63:
int n)
65: {
/*以分数为关键字排序*/
/*按照分数排名次*/
/*按照序号重新排序*/
69: }
70:
int main()
72: {
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;
75: sortRand(psn, 7);
);
77:
for(i = 0; i < 7; i++)
79: {
, psn[i].num, psn[i].score, psn[i].rand);
81: }
82:
return 0;
84: }
85: