原题链接:考试排名
import java.util.Scanner;
class Stu{
String name;
int nums;
int times;
}
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int t=sc.nextInt();
Stu []s=new Stu [10000];
int cnt=0,i=0;//学生人数
while(sc.hasNext()){
s[i]=new Stu();
s[i].name=sc.next();
s[i].nums=0; s[i].times=0;
for (int j = 0; j < n; j++) {
String Num=sc.next();
try {
int a=Integer.parseInt(Num);
if(a>0){
s[i].nums++; s[i].times+=a;
}
}
catch (Exception e) {
s[i].nums++;
int index=Num.indexOf("(");
int end=Num.indexOf(")");
s[i].times+=Integer.parseInt(Num.substring(0,index));
s[i].times+=Integer.parseInt(Num.substring(index+1,end))*t;
}
}
i++; cnt=i;
}
for (i = 0; i < cnt-1; i++) {
for (int j = 0; j < cnt-1; j++) {
if(s[j].nums==s[j+1].nums&&s[j].times>s[j+1].times|| s[j].nums<s[j+1].nums||
s[j].nums==s[j+1].nums&&s[j].times==s[j+1].times&&s[j].name.compareTo(s[j+1].name)>0 ){
Stu temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}
for(i=0;i<cnt;i++)
System.out.printf("%-10s %2d %4d\n", s[i].name,s[i].nums,s[i].times );
sc.close();
}
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复