C语言从文件读取学生成绩计算平均成绩、最高分和最低分
时间: 2023-12-01 14:26:25 浏览: 137
好的,我可以为您解答这个问题。
首先,您需要准备一个包含学生姓名和成绩的文本文件,每行一个学生信息,形式如下:
```
张三 80
李四 90
王五 85
...
```
然后,您可以使用 C 语言中的文件操作函数从文件中读取数据并进行处理,计算平均成绩、最高分和最低分。
下面是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
char name[20];
int score, sum = 0, max = 0, min = 100, count = 0;
double avg;
fp = fopen("scores.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
while (fscanf(fp, "%s %d", name, &score) == 2) {
sum += score;
count++;
if (score > max) {
max = score;
}
if (score < min) {
min = score;
}
}
fclose(fp);
if (count == 0) {
printf("文件中没有数据\n");
return 1;
}
avg = (double)sum / count;
printf("平均成绩:%.2f\n", avg);
printf("最高分:%d\n", max);
printf("最低分:%d\n", min);
return 0;
}
```
在这个示例代码中,我们打开名为 "scores.txt" 的文件,使用 fscanf 函数从文件中读取每行的学生姓名和成绩,并将它们累加到 sum 变量中。同时,我们使用 count 变量记录总共读取的数据行数,以便计算平均成绩。在读取每个成绩时,我们还更新最高分和最低分的值。最后,我们输出计算出的平均成绩、最高分和最低分。