c语言
时间: 2023-06-22 10:20:57 浏览: 72
好的,以下是一个使用 C 语言实现的读取数据文件并计算每个学生平均成绩的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char line[100];
char *token;
int score[3], sum;
float avg;
// 打开数据文件
fp = fopen("students.txt", "r");
if (fp == NULL) {
printf("无法打开文件!\n");
return 1;
}
// 逐行读取数据
while (fgets(line, 100, fp) != NULL) {
// 分割数据并计算平均成绩
token = strtok(line, ",");
printf("学号:%s,姓名:%s,", token, strtok(NULL, ","));
sum = 0;
for (int i = 0; i < 3; i++) {
token = strtok(NULL, ",");
score[i] = atoi(token);
sum += score[i];
}
avg = (float)sum / 3;
printf("平均成绩:%.2f\n", avg);
}
// 关闭数据文件
fclose(fp);
return 0;
}
```
该程序使用 C 标准库中的文件操作函数来打开和读取数据文件。首先,程序使用 `fopen()` 函数打开名为“students.txt”的数据文件,并检查文件是否成功打开。然后,程序使用 `fgets()` 函数逐行读取数据文件中的数据。
对于每一行数据,程序使用 `strtok()` 函数将数据分割成一个个字段。第一个字段是学号,第二个字段是姓名,后面的三个字段是三门课程的成绩。程序使用 `atoi()` 函数将字符串转换成整数类型,并计算三门课程的总成绩。最后,程序将总成绩除以 3 得到平均成绩,并使用 `printf()` 函数输出学生信息和平均成绩。
注意,代码中的 `%.2f` 表示输出数字时保留两位小数。您可以根据需要进行修改。
希望这个例子能够帮助你解决问题。
阅读全文