java已知10名学生的成绩,从高到低输出前3名的成绩
时间: 2023-05-11 16:03:44 浏览: 147
可以使用数组和排序算法来解决这个问题。首先,将学生的成绩存储在一个数组中,然后使用冒泡排序或快速排序等算法对数组进行排序。最后,输出数组中前三个元素即可。
以下是使用冒泡排序算法的 Java 代码示例:
int[] scores = {90, 85, 92, 78, 80, 88, 75, 95, 86, 91};
for (int i = 0; i < scores.length - 1; i++) {
for (int j = 0; j < scores.length - i - 1; j++) {
if (scores[j] < scores[j + 1]) {
int temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
System.out.println("前三名的成绩为:");
for (int i = 0; i < 3; i++) {
System.out.println(scores[i]);
}
相关问题
已知三名学生三科成绩,求总成绩并按成绩排名输出
好的,你可以使用结构体来存储每个学生的信息,包括姓名和三科成绩。然后,你可以计算每个学生的总成绩,并将学生按照总成绩从高到低排名输出。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define NUM_STUDENTS 3
#define NUM_SUBJECTS 3
struct student {
char name[20];
int scores[NUM_SUBJECTS];
int total_score;
};
void calc_total_score(struct student *s) {
int i, sum = 0;
for (i = 0; i < NUM_SUBJECTS; i++) {
sum += s->scores[i];
}
s->total_score = sum;
}
void print_students(struct student *students, int num_students) {
int i, j;
// 冒泡排序,按总成绩从高到低排名
for (i = 0; i < num_students - 1; i++) {
for (j = 0; j < num_students - i - 1; j++) {
if (students[j].total_score < students[j + 1].total_score) {
struct student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
// 输出排名
for (i = 0; i < num_students; i++) {
printf("%s: %d\n", students[i].name, students[i].total_score);
}
}
int main() {
struct student students[NUM_STUDENTS];
int i, j;
// 输入学生信息和成绩
for (i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第%d名学生的姓名:", i + 1);
scanf("%s", students[i].name);
for (j = 0; j < NUM_SUBJECTS; j++) {
printf("请输入%s的第%d科成绩:", students[i].name, j + 1);
scanf("%d", &students[i].scores[j]);
}
calc_total_score(&students[i]);
}
// 输出排名
print_students(students, NUM_STUDENTS);
return 0;
}
```
这个示例代码首先定义了一个 `student` 结构体,包括学生的姓名、三科成绩和总成绩。然后,它定义了两个函数,`calc_total_score` 函数用来计算学生的总成绩,`print_students` 函数用来按照总成绩排名输出学生信息。
在 `main` 函数中,它首先使用循环输入每个学生的信息和成绩,并计算每个学生的总成绩。然后,它调用 `print_students` 函数输出排名。
希望这个示例代码可以帮助到你。
已知5位同学的姓名和高数考试成绩,编写程序,按照成绩从高到低输出学生姓名
可以使用结构体来存储同学的姓名和成绩,然后使用冒泡排序或选择排序等算法进行排序。
以下是一个冒泡排序的示例代码:
```c++
#include <iostream>
using namespace std;
struct student {
string name;
int score;
};
int main() {
student stu[5] = {{"Tom", 80}, {"Jerry", 90}, {"Alice", 70}, {"Bob", 85}, {"Kate", 75}};
// 冒泡排序
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4-i; j++) {
if (stu[j].score < stu[j+1].score) {
swap(stu[j], stu[j+1]);
}
}
}
// 输出结果
for (int i = 0; i < 5; i++) {
cout << stu[i].name << ": " << stu[i].score << endl;
}
return 0;
}
```
输出结果:
```
Jerry: 90
Tom: 80
Bob: 85
Kate: 75
Alice: 70
```