A题进行时--浙大PAT 1011-1020

1011

A题进行时--浙大PAT 1011-1020
 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 int main(){
 5     float w[4];
 6     float t[4];
 7     float l[4];
 8     char a[4];
 9     float x[4];
10     int i;
11     float sum;
12     memset(w,0,sizeof(w));
13     memset(t,0,sizeof(w));
14     memset(l,0,sizeof(w));
15 
16     for(i=0;i<3;i++){
17         scanf("%f %f %f",&w[i],&t[i],&l[i]);
18     }
19 
20     for(i=0;i<3;i++){
21         //x[i]=max(w[i],t[i],l[i]);
22         if(w[i]>t[i]&&w[i]>l[i]){
23             x[i]=w[i];
24             a[i]=W;
25         }
26         else if(t[i]>l[i]){
27             x[i]=t[i];
28             a[i]=T;
29         }
30         else{
31             x[i]=l[i];
32             a[i]=L;
33         }
34     }
35     sum=(x[0]*x[1]*x[2]*0.65-1)*2;
36     printf("%c %c %c %.2f",a[0],a[1],a[2],sum);
37     return 0;
38 }
A题进行时--浙大PAT 1011-1020

也是非常简单的一道题,没什么好说的

1012(重要!!)

A题进行时--浙大PAT 1011-1020
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<vector>
 5 using namespace std;
 6 struct stu{
 7     int id;
 8     int c;
 9     int m;
10     int e;
11     int a;
12     char br;
13     int rank;
14 };
15 bool cmpbyA(stu A,stu B){
16     return A.a>B.a;
17 }
18 bool cmpbyC(stu A,stu B){
19     return A.c>B.c;
20 }
21 bool cmpbyM(stu A,stu B){
22     return A.m>B.m;
23 }
24 bool cmpbyE(stu A,stu B){
25     return A.e>B.e;
26 }
27 int main(){
28     int i,j;
29     int n1,n2;
30     int t;
31     int score,r;
32     vector<stu> v;
33     freopen("in2.txt","r",stdin);
34     scanf("%d %d",&n1,&n2);
35     for(i=0;i<n1;i++){
36         stu s;
37         scanf("%d %d %d %d",&(s.id),&(s.c),&(s.m),&(s.e));
38         s.a=(s.c+s.m+s.e)/3;
39         v.push_back(s);
40     }
41     score=-1;
42     r=0;
43     sort(v.begin(),v.end(),cmpbyA);
44     for(i=0;i<v.size();i++){
45         if(v[i].a!=score)
46             r=i+1;
47         score=v[i].a;
48         v[i].rank=r;
49         v[i].br=A;
50     }
51     sort(v.begin(),v.end(),cmpbyC);
52     for(i=0;i<v.size();i++){
53         if(v[i].c!=score)
54             r=i+1;
55         score=v[i].c;
56         if(v[i].rank>r){
57             v[i].rank=r;
58             v[i].br=C;
59         }
60     }
61     sort(v.begin(),v.end(),cmpbyM);
62     for(i=0;i<v.size();i++){
63         if(v[i].m!=score)
64             r=i+1;
65         score=v[i].m;
66         if(v[i].rank>r){
67             v[i].rank=r;
68             v[i].br=M;
69         }
70     }
71     sort(v.begin(),v.end(),cmpbyE);
72     for(i=0;i<v.size();i++){
73         if(v[i].e!=score)
74             r=i+1;
75         score=v[i].e;
76         if(v[i].rank>r){
77             v[i].rank=r;
78             v[i].br=E;
79         }
80     }
81     for(i=0;i<n2;i++){
82         scanf("%d",&t);
83         for(j=0;j<n1;j++){
84             if(t==v[j].id){
85                 printf("%d %c\n",v[j].rank,v[j].br);
86                 break;
87             }
88             else if(t!=v[j].id&&j==n1-1)
89                 printf("N/A\n");
90         }
91     }
92     return 0;
93 }
A题进行时--浙大PAT 1011-1020

教科书一般的代码,从这个代码可以学到很多:

c++中vector容器的应用,使用此容器,直接将结构体装入容器内,直接利用vector本身的函数就可以非常方便的进行排序、计算大小等。

注意排名时候的名词并列的情况,本程序提供了一个非常优秀的处理方案,一定要学会使用。

A题进行时--浙大PAT 1011-1020

上一篇:高能效系统的功耗优化技术


下一篇:高校学生参加飞天加速计划