编写一个程序,根据学生成绩进行升序或降序
时间: 2024-03-09 14:45:14 浏览: 22
好的,我可以给你一个 Python 的示例程序来实现这个功能。以下是代码:
```python
# 学生成绩列表
scores = [90, 80, 95, 85, 70]
# 输入排序方式
order = input("请输入排序方式(升序输入'asc',降序输入'desc'):")
# 根据输入的排序方式进行排序
if order == 'asc':
sorted_scores = sorted(scores)
elif order == 'desc':
sorted_scores = sorted(scores, reverse=True)
else:
print("输入有误,请重新输入!")
exit()
# 输出排序结果
print("排序结果:", sorted_scores)
```
你可以根据需要修改列表中的成绩和排序方式进行测试。
相关问题
定义学生结构体,初始化5名学生的学号、姓名及成绩。struct stu s[5]={{201,"Zhang",78},{202,"Li",85},{203,"Wang",60},{204,"Wang",75},{205,"Xue",80}}; 编写程序根据用户输入的n值,输出升序或降序排列的学生信息。输入1,输出降序排列的学生信息;输入2,输出升序排列的学生信息。输出格式:"%-8d%-8s%d\n" 【输入形式】 n 【输出形式】 升序或降序排列的学生信息 【样例输入】 1 【样例输出】 202 Li 85 205 Xue 80 201 Zhang 78 204 Wang 75 203 Wang 60
以下是C语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
struct stu {
int num;
char name[20];
int score;
};
int main()
{
struct stu s[5] = {
{201, "Zhang", 78},
{202, "Li", 85},
{203, "Wang", 60},
{204, "Wang", 75},
{205, "Xue", 80}
};
int n;
scanf("%d", &n);
if (n == 1) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5 - i - 1; j++) {
if (s[j].score < s[j + 1].score) {
struct stu temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
} else if (n == 2) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5 - i - 1; j++) {
if (s[j].score > s[j + 1].score) {
struct stu temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
}
for (int i = 0; i < 5; i++) {
printf("%-8d%-8s%d\n", s[i].num, s[i].name, s[i].score);
}
return 0;
}
```
输入样例:
```
1
```
输出样例:
```
202 Li 85
205 Xue 80
201 Zhang 78
204 Wang 75
203 Wang 60
```
输入样例:
```
2
```
输出样例:
```
203 Wang 60
204 Wang 75
201 Zhang 78
205 Xue 80
202 Li 85
```
在当前目录中有学生信息文件student.txt,文件内容如下:20240101,Jong,98.210103,tom,100.240101,Jenny,78.写python程序实现从文件中读入数据,并按成绩排序(升序,降序),排序后输出学生信息
好的,我可以为你编写这样的 Python 程序。你可以参考以下代码:
```python
# 读取数据
with open("student.txt", "r") as f:
data = f.readlines()
students = []
for line in data:
info = line.strip().split(",")
student = {
"id": info[0],
"name": info[1],
"score": float(info[2])
}
students.append(student)
# 按成绩排序(升序)
students_sorted_by_score_ascending = sorted(students, key=lambda x: x["score"])
# 输出学生信息
print("按成绩排序(升序):")
for student in students_sorted_by_score_ascending:
print(f"学号:{student['id']},姓名:{student['name']},成绩:{student['score']:.2f}")
# 按成绩排序(降序)
students_sorted_by_score_descending = sorted(students, key=lambda x: x["score"], reverse=True)
# 输出学生信息
print("按成绩排序(降序):")
for student in students_sorted_by_score_descending:
print(f"学号:{student['id']},姓名:{student['name']},成绩:{student['score']:.2f}")
```
在该程序中,首先我们打开并读取了名为 `student.txt` 的文件,将其按行读取并存储在 `data` 变量中。然后,我们遍历 `data` 变量中的每一行数据,并使用 `strip()` 和 `split()` 方法将其转换为一个字典类型的学生信息,并将所有学生信息存储在 `students` 列表中。
接下来,我们使用 `sorted()` 函数对 `students` 列表进行排序,通过 `key` 参数指定按照学生成绩进行排序,并通过 `reverse` 参数指定排序方式为降序或升序。
最后,我们遍历排序后的列表,按照指定格式输出每个学生的信息。