C语言有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。 1.程序分析:定义结构体struct student { char num[6]; char name[8]; int score[3]; float avr; } stu[5];
时间: 2024-01-04 17:04:30 浏览: 93
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
好的,这是一个关于C语言的问题,以下是一个可能的解决方案:
```c
#include <stdio.h>
// 定义结构体
struct student {
char num[6];
char name[8];
int score[3];
float avr;
} stu[5];
int main() {
int i, j;
float sum;
// 输入数据
for (i = 0; i < 5; i++) {
printf("请输入第%d个学生的学号、姓名和3门课的成绩:\n", i + 1);
scanf("%s%s%d%d%d", stu[i].num, stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
}
// 计算平均成绩
for (i = 0; i < 5; i++) {
sum = 0;
for (j = 0; j < 3; j++) {
sum += stu[i].score[j];
}
stu[i].avr = sum / 3.0;
}
// 输出结果到文件
FILE *fp;
fp = fopen("stud", "w");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
for (i = 0; i < 5; i++) {
fprintf(fp, "%s %s %d %d %d %.2f\n", stu[i].num, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].avr);
}
fclose(fp);
printf("结果已经保存到文件stud中!\n");
return 0;
}
```
这个程序定义了一个结构体`student`,包含学生的学号、姓名、3门课的成绩和平均成绩。程序首先从键盘输入数据,然后计算每个学生的平均成绩,并将结果输出到文件"stud"中。其中,`fprintf`函数用于将结果输出到文件中。
注意,程序中使用了文件操作,需要包含头文件`<stdio.h>`,并且在操作文件之前需要先打开文件,操作完成后需要关闭文件。如果文件打开失败,程序应该给出提示并结束运行。
阅读全文