用二进制文件格式输入30名学生数学,英语,C语言成绩,并按从高到低排序
时间: 2024-05-01 13:17:00 浏览: 71
学生各科成绩,二进制和文本方式写入
5星 · 资源好评率100%
由于没有具体的二进制文件格式要求,因此以下代码使用了一种常见的二进制文件格式:每个成绩使用4个字节存储,前3个字节存储整数部分,第4个字节存储小数部分。
```python
import struct
# 读入成绩并排序
scores = []
with open('scores.bin', 'rb') as f:
while True:
buf = f.read(4)
if not buf:
break
score = struct.unpack('f', buf)[0]
scores.append(score)
scores.sort(reverse=True)
# 输出排序后的成绩
for i, score in enumerate(scores):
print(f'{i+1}. {score:.2f}')
```
假设有一个名为`scores.bin`的二进制文件,其格式如下:
```
学生1数学成绩(4字节)
学生1英语成绩(4字节)
学生1C语言成绩(4字节)
学生2数学成绩(4字节)
学生2英语成绩(4字节)
学生2C语言成绩(4字节)
...
学生30数学成绩(4字节)
学生30英语成绩(4字节)
学生30C语言成绩(4字节)
```
使用以上代码即可读入这些成绩并排序。注意,以上代码假设每个成绩都是有效的4字节IEEE 754浮点数。如果实际数据格式有所不同,需要根据实际情况进行调整。
阅读全文