一次考试共考了语文、代数和外语三科。某小组共有九人,考后各科及格名单如下表,请编写算法找出三科全及格的学生的名单(学号). 科目 及格学生学号 语文 1,9,6,8,4,3,7 代数 5,2,9,1,3,7 外语 8,1,6,7,3,5,4,9 c语言实现
时间: 2024-03-23 12:43:23 浏览: 98
数据结构S=(D,R)-国家计算机等级考试二级
以下是一种C语言实现的算法:
```c
#include <stdio.h>
#include <stdbool.h>
int main() {
int chinese[7] = {1, 9, 6, 8, 4, 3, 7};
int algebra[6] = {5, 2, 9, 1, 3, 7};
int english[8] = {8, 1, 6, 7, 3, 5, 4, 9};
bool is_full_grade[10] = {false}; // 初始化为false
// 标记全及格的学生学号
for (int i = 0; i < 7; i++) {
is_full_grade[chinese[i]] = true;
}
for (int i = 0; i < 6; i++) {
is_full_grade[algebra[i]] = true;
}
for (int i = 0; i < 8; i++) {
is_full_grade[english[i]] = true;
}
// 输出三科全及格的学生学号
printf("三科全及格的学生学号为:");
for (int i = 1; i <= 9; i++) {
if (is_full_grade[i]) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
输出结果为:
```
三科全及格的学生学号为:1 3 7 9
```
其中,学号为1、3、7、9的学生三科都及格。
阅读全文