1 条题解
-
0
C :
#include<stdio.h> int main(){ int n,i,j,t,max,min; scanf("%d",&n); int a[n][7]; for(i=0;i<n;i++){ //当前行的总分 t = 0,max = 1,min = 1; scanf("%d",&a[i][0]); for(j=1;j<=5;j++){ scanf("%d",&a[i][j]); t = t + a[i][j]; if(a[i][j]>a[i][max]){ max = j; } if(a[i][j]<a[i][min]){ min = j; } } a[i][6] = t - a[i][max] - a[i][min]; } for(i=1;i<=n;i++){ for(j=0;j<n-i;j++){ if(a[j][6] < a[j+1][6]){ t = a[j][6]; a[j][6] = a[j+1][6]; a[j+1][6] = t; t = a[j][0]; a[j][0] = a[j+1][0]; a[j+1][0] = t; } } } for(i=0;i<3;i++){ printf("%d %.3lf\n",a[i][0],a[i][6]/3.0); } return 0; }
C++ :
#include <bits/stdc++.h> using namespace std; int main(){ int i,j,a[100][6],num[100],max,min,s=0,n; double score[100]; cin>>n; for(i=0;i<n;i++){ for(j=0;j<6;j++){ cin>>a[i][j]; } num[i]=a[i][0]; max=a[i][1]; min=a[i][1]; s=a[i][1]; for(j=2;j<=5;j++){ if(a[i][j]>max){ max=a[i][j]; } if(a[i][j]<min){ min=a[i][j]; } s=s+a[i][j]; } score[i]=(s-max-min)*1.0/3; } for(i=1;i<n;i++){ for(j=0;j<n-i;j++){ if(score[j]<score[j+1]){ swap(score[j],score[j+1]); swap(num[j],num[j+1]); } } } for(i=0;i<3;i++){ cout<<num[i]<<" "; cout<<fixed<<setprecision(3)<<score[i]<<endl; } }
Python :
stus = [] class Student: def __init__(self,id,data,ave): self.id = id self.data= data self.ave=ave n=int(input()) for i in range(n): t=list(map(int,input().split())) x=t[0:1] y=t[1:] y=sorted(y) stus.append(Student(id=x[0],data=y,ave=sum(y[1:4])/3)) stulist = sorted(stus, key=lambda zz:(-zz.ave, zz.id)) for i in range(3): print("%d %.3lf"%(stulist[i].id,stulist[i].ave))
- 1
信息
- ID
- 2235
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者