c语言实现,有一个班,4个学生,3门功课,输入四个学生的成绩,如学生成绩为{67,87,76},{54,67,89},{54,53,89},{67,78,54},查找有一门及以上课程不及格的学生,输出他们的全部课程的成绩。(用数组指针实现)
时间: 2024-12-28 14:37:09 浏览: 9
在C语言中,你可以使用结构体来表示学生的信息,并创建一个指向该结构体的数组来存储所有学生的数据。首先,我们需要定义一个名为`Student`的结构体,包含姓名和三门课程的成绩:
```c
#include <stdio.h>
// 定义学生结构体
typedef struct {
int scores[3]; // 学生的三门课程成绩
} Student;
int has_failing_score(Student* students, int num_students) {
for (int i = 0; i < num_students; i++) {
if (students[i].scores[0] <= 60 ||
students[i].scores[1] <= 60 ||
students[i].scores[2] <= 60) {
printf("学生 %d 的成绩有不及格科目:", i + 1);
for (int j = 0; j < 3; j++) {
printf("%d ", students[i].scores[j]);
}
printf("\n");
return 1; // 找到一个不及格的学生就返回
}
}
return 0; // 没有找到不及格的学生
}
int main() {
const int num_students = 4;
Student* student_array = (Student*)malloc(num_students * sizeof(Student));
// 输入学生分数
for (int i = 0; i < num_students; i++) {
scanf("%d %d %d", &student_array[i].scores[0], &student_array[i].scores[1], &student_array[i].scores[2]);
}
// 检查是否有不及格的学生
if (has_failing_score(student_array, num_students)) {
printf("存在不及格学生。\n");
} else {
printf("所有学生都及格。\n");
}
free(student_array); // 释放内存
return 0;
}
```
这个程序会检查每个学生的所有课程成绩,如果有任何一个课程不及格(60分以下),就会打印出该学生的成绩并退出函数。如果没有不及格的学生,则会在主函数结束时输出“所有学生都及格”。
阅读全文