C语言编写程序,读出上述student.dat中的数据,将它们输出到屏幕,每行输出一个学生 的数据,并且统计学生的平均年龄。
时间: 2023-06-27 22:03:38 浏览: 286
C语言程序设计-统计出若干个学生的平均成绩,最高分以及得最高分的人数;
5星 · 资源好评率100%
假设student.dat文件中的数据格式为:每个学生的数据占据一行,依次为学号、姓名、年龄,数据之间用空格隔开。可以按照以下步骤编写程序:
1. 打开文件,判断是否打开成功。
2. 读取文件中的数据,每次读取一行,解析出学号、姓名、年龄,并输出到屏幕。
3. 统计学生人数和年龄总和,计算平均年龄。
4. 关闭文件。
下面是示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
char filename[] = "student.dat";
char line[100];
int num, age, count = 0, total_age = 0;
char name[20];
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
return 1;
}
while (fgets(line, 100, fp) != NULL) {
sscanf(line, "%d %s %d", &num, name, &age);
printf("%d %s %d\n", num, name, age);
count++;
total_age += age;
}
if (count > 0) {
float avg_age = (float)total_age / count;
printf("Average age: %.2f\n", avg_age);
}
fclose(fp);
return 0;
}
```
注意,在读取文件时使用了fgets函数,每次读取一行数据。然后使用sscanf函数从字符串中解析出学号、姓名和年龄。最后统计学生人数和年龄总和,并计算平均年龄。
阅读全文