C语言学生结构体成员:学号、成绩。主函数中已将学生数据存放在结构体数组s中。调用函数。 函数:把不及格的学生数据放在数组b中,返回不及格人数。
时间: 2024-04-02 15:35:31 浏览: 87
好的,以下是可以实现这个功能的 C 语言代码:
```c
#include <stdio.h>
struct student {
int id;
int score;
};
int filter(struct student s[], int n, struct student b[]) {
int count = 0;
for (int i = 0; i < n; i++) {
if (s[i].score < 60) {
b[count++] = s[i];
}
}
return count;
}
int main() {
struct student s[100], b[100];
int n, b_count;
printf("请输入学生个数n:");
scanf("%d", &n);
printf("请输入%d个学生的学号和成绩:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d %d", &s[i].id, &s[i].score);
}
b_count = filter(s, n, b);
printf("不及格人数为:%d\n", b_count);
printf("不及格学生的学号和成绩为:\n");
for (int i = 0; i < b_count; i++) {
printf("%d %d\n", b[i].id, b[i].score);
}
return 0;
}
```
代码解释:
1. 首先,我们定义了两个结构体数组 s 和 b,分别用于存储所有学生的学号和成绩以及不及格学生的学号和成绩。
2. 然后,我们使用 `scanf` 函数获取用户输入的学生个数 n 以及每个学生的学号和成绩。
3. 接下来,我们调用 `filter` 函数,将不及格的学生数据存放在数组 b 中,并返回不及格人数。
4. 然后,我们输出不及格人数以及不及格学生的学号和成绩。
5. 最后,我们返回 0,表示程序运行成功结束。
希望这个代码可以帮助你解决问题。
阅读全文