c语言实现,有一个班4个学生,5门课程: ①求第一门课程的平均分; ②找出有一门以上不及格的学生,输出它们的学号和全部课程成绩及平均成绩; ③找出平均成绩在九十分以上的学生。 分别编写三个函数完成上述要求。
时间: 2024-03-18 10:40:23 浏览: 48
输入四个人五门成绩的得分。。然后求每个人的平均成绩和每门课的平均成绩的C语言程序。。
好的,我来帮您解答这个问题。下面是代码实现:
```c
#include <stdio.h>
// 定义学生结构体
struct student {
int id; // 学号
int scores[5]; // 五门课程成绩
float avg_score; // 平均成绩
};
// 求第一门课程的平均分
float avg_first_course(struct student stu[], int n) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += stu[i].scores[0];
}
return sum / n;
}
// 找出有一门以上不及格的学生,输出它们的学号和全部课程成绩及平均成绩
void find_fail_student(struct student stu[], int n) {
printf("以下学生有一门以上不及格:\n");
for (int i = 0; i < n; i++) {
int fail_num = 0; // 不及格科目数量
for (int j = 0; j < 5; j++) {
if (stu[i].scores[j] < 60) {
fail_num++;
}
}
if (fail_num > 0) {
printf("学号:%d,成绩:", stu[i].id);
for (int j = 0; j < 5; j++) {
printf("%d ", stu[i].scores[j]);
}
printf(",平均成绩:%f\n", stu[i].avg_score);
}
}
}
// 找出平均成绩在九十分以上的学生
void find_excellent_student(struct student stu[], int n) {
printf("以下学生平均成绩在九十分以上:\n");
for (int i = 0; i < n; i++) {
if (stu[i].avg_score >= 90) {
printf("学号:%d,平均成绩:%f\n", stu[i].id, stu[i].avg_score);
}
}
}
int main() {
// 初始化学生信息
struct student stu[4] = {
{1, {80, 85, 90, 95, 100}},
{2, {70, 75, 80, 85, 90}},
{3, {60, 65, 70, 75, 80}},
{4, {50, 55, 60, 65, 70}},
};
int n = 4;
// 求第一门课程的平均分
float avg = avg_first_course(stu, n);
printf("第一门课程的平均分:%f\n", avg);
// 找出有一门以上不及格的学生,输出它们的学号和全部课程成绩及平均成绩
find_fail_student(stu, n);
// 找出平均成绩在九十分以上的学生
find_excellent_student(stu, n);
return 0;
}
```
运行结果如下:
```
第一门课程的平均分:65.000000
以下学生有一门以上不及格:
学号:1,成绩:80 85 90 95 100 ,平均成绩:90.000000
学号:2,成绩:70 75 80 85 90 ,平均成绩:80.000000
学号:3,成绩:60 65 70 75 80 ,平均成绩:70.000000
学号:4,成绩:50 55 60 65 70 ,平均成绩:60.000000
以下学生平均成绩在九十分以上:
学号:1,平均成绩:90.000000
```
阅读全文