统计各科不及格人数C语言
时间: 2024-12-27 21:21:00 浏览: 15
在C语言中统计各科不及格人数通常需要一个数据结构来存储学生的成绩信息,比如一个二维数组或结构体来表示学生姓名、科目和分数。下面是一个简单的示例,假设我们有一个包含所有学生成绩的二维数组,其中0表示及格,非0值表示不及格:
```c
#include <stdio.h>
#define NUM_SUBJECTS 3 // 假设有3门课
#define MAX_STUDENTS 5 // 假设最多5名学生
typedef struct {
char name[50];
int scores[NUM_SUBJECTS];
} Student;
void count_fails(Student students[], int num_students) {
int fails[NUM_SUBJECTS] = {0}; // 初始化一个数组记录每科的不及格人数
for (int i = 0; i < num_students; i++) {
for (int j = 0; j < NUM_SUBJECTS; j++) {
if (students[i].scores[j] != 0) { // 如果分数不是0(即不及格)
fails[j]++;
}
}
}
// 打印各科不及格人数
printf("各科不及格人数:\n");
for (int k = 0; k < NUM_SUBJECTS; k++) {
printf("科目%d: %d\n", k+1, fails[k]);
}
}
int main() {
Student students[MAX_STUDENTS] = {
{"张三", {80, 75, 90}}, // 每个元素表示学生姓名和成绩
{"李四", {60, 0, 85}},
{"王五", {70, 95, 0}},
{"赵六", {0, 70, 80}},
{"刘七", {85, 70, 75}}
};
int num_students = sizeof(students) / sizeof(students[0]); // 计算学生总数
count_fails(students, num_students);
return 0;
}
```
在这个例子中,`count_fails`函数遍历每个学生的成绩,如果发现某个科目得分不是0,则相应计数器加1。`main`函数中创建了几个学生示例并调用了这个函数。
阅读全文