先利用文本编辑工具输入10个人的成绩,存放格式为:每人一行,成绩间由逗号分隔,并将数据保存到文件ci,dat中。然后用C语言编程读出该文件的内容,并计算3门课程的平均成绩,统计个人平均成绩大于或等于90分学生的人
时间: 2024-05-01 11:23:17 浏览: 117
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
int scores[10][3]; // 存放成绩的数组
int i, j, count = 0;
float avg[3] = {0.0}; // 存放平均成绩的数组
// 打开文件,读取数据
fp = fopen("ci.dat", "r");
for (i = 0; i < 10; i++) {
fscanf(fp, "%d,%d,%d", &scores[i][0], &scores[i][1], &scores[i][2]);
}
fclose(fp);
// 计算平均成绩
for (i = 0; i < 10; i++) {
for (j = 0; j < 3; j++) {
avg[j] += scores[i][j];
}
}
for (j = 0; j < 3; j++) {
avg[j] /= 10.0;
}
// 统计个人平均成绩大于等于90分的人数
for (i = 0; i < 10; i++) {
float sum = 0.0;
for (j = 0; j < 3; j++) {
sum += scores[i][j];
}
float person_avg = sum / 3.0;
if (person_avg >= 90.0) {
count++;
}
}
// 输出结果
printf("平均成绩:%.2f, %.2f, %.2f\n", avg[0], avg[1], avg[2]);
printf("个人平均成绩大于等于90分的人数:%d\n", count);
return 0;
}
```
其中,我们使用了`fopen()`函数打开文件,使用`fscanf()`函数读取数据,使用`fclose()`函数关闭文件。为了方便计算平均成绩,我们使用了一个二维数组`scores`来存放所有成绩,使用一个一维数组`avg`来存放三门课程的平均成绩。最后,我们遍历`scores`数组,计算每个人的平均成绩,并统计个人平均成绩大于等于90分的人数。
阅读全文