利用结构体数组编程。数组元素包含学生学号和成绩两个成员。要求从键盘输入20个学生的学号和成绩,将成绩大于90的学生放入到另外一个结构体数组中,并从键盘输出该数组。
时间: 2024-05-14 16:19:07 浏览: 88
以下是一个示例程序,实现了上述需求:
```c
#include <stdio.h>
#define MAX_STUDENTS 20
// 学生结构体
struct student {
int id;
int score;
};
// 保存成绩大于90的学生的结构体数组
struct student excellent_students[MAX_STUDENTS];
int num_excellent_students = 0;
int main() {
// 输入学生信息
struct student students[MAX_STUDENTS];
for (int i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第%d个学生的学号和成绩,用空格分隔:", i + 1);
scanf("%d %d", &students[i].id, &students[i].score);
if (students[i].score > 90) {
excellent_students[num_excellent_students++] = students[i];
}
}
// 输出成绩大于90的学生信息
printf("成绩大于90的学生有%d个:\n", num_excellent_students);
for (int i = 0; i < num_excellent_students; i++) {
printf("学号:%d,成绩:%d\n", excellent_students[i].id, excellent_students[i].score);
}
return 0;
}
```
在程序中,我们首先定义了一个 `struct student` 结构体,包含了学生的学号和成绩。然后定义了另外一个结构体数组 `excellent_students`,用于保存成绩大于90的学生。同时,我们还定义了一个 `num_excellent_students` 变量,用于记录成绩大于90的学生的数量。
在 `main()` 函数中,我们首先使用循环从键盘输入每个学生的学号和成绩,并将成绩大于90的学生保存到 `excellent_students` 数组中。在输入过程中,如果发现有成绩大于90的学生,就将其添加到 `excellent_students` 数组中,并将 `num_excellent_students` 加 1。
最后,我们输出所有成绩大于90的学生的信息,即遍历 `excellent_students` 数组,输出每个学生的学号和成绩。
阅读全文