java语言做成绩排名表如何实现同分同名次
时间: 2024-05-09 18:18:10 浏览: 121
如果有多位同学分数相同,在做成绩排名表时应该让这些同学同时占据相应名次,如:如果有两个同学分数并列第二,那么排名应该为第二和第二,下一位同学排在第四位。可以通过以下代码实现:
1. 对成绩进行排序,从高到低。
2. 设置一个计数器,用于标记当前名次。
3. 遍历排序后的成绩数组,如果当前成绩和上一个成绩相同,则当前名次和上一个名次相同,否则当前名次为计数器的值加1,然后更新计数器。
以下是Java代码示例:
```java
public class GradeRanking {
public static void main(String[] args) {
// 假设有这些同学的成绩
int[] grades = {80, 90, 87, 90, 92, 85};
// 对成绩进行排序
Arrays.sort(grades);
// 设置一个计数器
int rank = 1;
// 遍历成绩数组,输出排名表
for (int i = grades.length - 1; i >= 0; i--) {
if (i == grades.length - 1) {
// 第一条记录
System.out.println("排名 名字 分数");
}
if (i == grades.length - 1 || grades[i] != grades[i + 1]) {
// 更新当前名次
rank = grades.length - i;
}
System.out.printf("%d %s %d\n", rank, "同学", grades[i]);
}
}
}
```
输出结果为:
```
排名 名字 分数
1 同学 92
2 同学 90
2 同学 90
4 同学 87
5 同学 85
6 同学 80
```
其中,“同学”是我随便取的一个名字,应该替换成实际的学生姓名。
阅读全文