# 数据结构第八章学习小结

(2分)
A.

B.

C.

D.

 1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6     int N;
7     cin >> N;
8     int i;
9     int m;
10     int a[51]={0};
11     for(i=0; i<N; i++)
12     {
13         cin >> m;
14         a[m]++;
15     }
16
17     for(i=0;i<=50;i++)
18     {
19         if(a[i]!=0)  cout << i << ":" << a[i] <<endl;
20     }
21
22     return 0;
23 }

1 typedef struct Stu{
2     string id;   //学号
3     int score;   //分数
4     int allRank;   //合并后的排名
5     int placeRank;   //在原来考场的排名
6     int placeId;   //考场的编号
7 }Stu;

1 bool cmp(Stu a,Stu b)
2 {
3     if (a.score!=b.score)  return a.score>b.score;
4     else  return a.id<b.id;
5 }

 1 int main()
2 {
3     int n;
4     cin>>n;
5     int num = 0;
6     int k;
7     for(int i = 0;i<n;i++)
8     {
9         cin>>k;
10         for(int j = num;j<num+k;j++)
11         {
12             cin >> stu[j].id >> stu[j].score;
13             stu[j].placeId = i+1;
14         }
15         sort(stu+num,stu+num+k,cmp);      //处理每一个考场的排名问题
16         int level = 1;
17         for(int j = num;j<num+k;j++)       //注意考虑重分的人
18         {
19             if(j==num)
20                 stu[j].placeRank = level;
21             else
22             {
23                 if(stu[j].score==stu[j-1].score)
24                     stu[j].placeRank = stu[j-1].placeRank;
25                 else stu[j].placeRank = level;
26             }
27             level++;
28         }
29         num+=k;                       //注意num要加k
30     }
31     sort(stu,stu+num,cmp);
32     int level = 1;
33     for(int j = 0;j<num;j++)       //注意考虑重分的人
34     {
35         if(j==0)
36             stu[j].allRank = level;
37         else
38         {
39             if(stu[j].score==stu[j-1].score)
40                 stu[j].allRank = stu[j-1].allRank;
41             else stu[j].allRank = level;
42         }
43         level++;
44     }
45     cout<<num<<endl;
46     for(int i = 0;i<num;i++)
47     {
48         cout<<stu[i].id<<" "<<stu[i].allRank<<" "<<stu[i].placeId<<" "<<stu[i].placeRank<<endl;
49     }
50     return 0;
51 } 

posted @ 2020-07-12 11:34  徐志涵  阅读(167)  评论(0编辑  收藏  举报