文件score.txt中存储了5名学生的6门课程的成绩,共5行。读取该文件,统计每个学生的平均分,并将统计结果存入文件score_avg.txt。
时间: 2023-12-03 14:45:49 浏览: 362
可以按照以下步骤实现:
1. 打开 score.txt 文件,读取每行成绩并计算每个学生的总成绩;
2. 计算每个学生的平均成绩;
3. 打开 score_avg.txt 文件,将每个学生的平均成绩写入文件。
代码如下:
```python
# 读取文件 score.txt
with open('score.txt', 'r') as f:
lines = f.readlines()
# 统计每个学生的总成绩和平均成绩
score_sum = [0] * 5
score_avg = [0] * 5
for line in lines:
scores = line.strip().split()
for i in range(5):
score_sum[i] += float(scores[i+1])
score_avg = [round(s/6, 2) for s in score_sum]
# 写入文件 score_avg.txt
with open('score_avg.txt', 'w') as f:
for i in range(5):
f.write(f"student{i+1} average score: {score_avg[i]}\n")
```
这段代码会生成一个新的文件 score_avg.txt,其中包含每个学生的平均成绩。每行的格式如下:
```
studentX average score: Y
```
其中 X 是学生编号,Y 是平均成绩,保留两位小数。
相关问题
文件score.txt中存储了5名学生的6门课程的成绩,共五行。读取该文件,统计每个学生的平均分,并将统计结果存入文件。score_avg.txt,
首先,你需要使用Python的内置模块如`open()`来打开并读取`score.txt`文件,然后逐行解析数据,每行数据表示一名学生的一组成绩。这里我们可以假设每行数据由学生姓名和逗号分隔的成绩组成,例如:"张三,80,90,95,75,85"。
下面是一个简单的Python脚本示例,它会完成这个任务:
```python
# 打开输入和输出文件
with open('score.txt', 'r') as score_file, open('score_avg.txt', 'w') as avg_file:
# 读取每一行
for line in score_file:
# 分割行内容,获取学生名字和成绩列表
student_name, *scores = line.strip().split(',')
# 计算平均分
average_score = sum(int(score) for score in scores) / len(scores)
# 将结果写入到新文件中
avg_file.write(f"{student_name}: {average_score}\n")
# 关闭文件
avg_file.close()
```
运行此脚本后,`score_avg.txt` 文件将会包含每位学生的平均分,格式类似:“张三: 85.0”。
C语言写程序:从score.txt中读取5名学生的5每门课课程成绩,求每个课程的平均分,将结果以5行5列的形式输出至文件 ave.txt 注意:学号、成绩均为数值型,程序尽量简单,不调用函数。
在C语言中编写这样的程序,首先需要打开输入文件`score.txt`读取数据,然后计算每门课程的平均分,并将其存储到输出文件`ave.txt`中。这里是一个简单的示例,不使用函数来完成这个任务:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINES 5
#define MAX_COLS 5
int main() {
char score_file[] = "score.txt";
char ave_file[] = "ave.txt";
FILE *fin = fopen(score_file, "r");
FILE *fout = fopen(ave_file, "w");
if (fin == NULL || fout == NULL) {
printf("Error opening files.\n");
return 1;
}
int scores[MAX_LINES][MAX_COLS] = {0};
int sum[5] = {0}; // 用于记录每门课总分
float avg[5]; // 存储每门课平均分
for (int i = 0; i < MAX_LINES; ++i) {
fgets(scores[i], sizeof(scores[i]), fin); // 读取一行
if (scores[i][0] != '\0') { // 检查是否为空行
char* endptr;
long num = strtol(scores[i], &endptr, 10);
if (*endptr == '\0' && i < 4) { // 只处理前5名学生
scores[i][0] = num;
sum[i % 5] += num; // 累加对应科目的分数
}
}
}
fclose(fin);
for (int j = 0; j < 5; ++j) {
avg[j] = (float)sum[j] / MAX_LINES; // 计算平均分
fprintf(fout, "%f\n", avg[j]); // 写入文件
}
fclose(fout);
printf("Average scores have been written to ave.txt.\n");
return 0;
}
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)