1011
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 }
也是非常简单的一道题,没什么好说的
1012(重要!!)
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 }
教科书一般的代码,从这个代码可以学到很多:
c++中vector容器的应用,使用此容器,直接将结构体装入容器内,直接利用vector本身的函数就可以非常方便的进行排序、计算大小等。
注意排名时候的名词并列的情况,本程序提供了一个非常优秀的处理方案,一定要学会使用。