编写一个30名学生信息状况的检索程序,每名学生的信息包括: xh(学号)、xb(性别)、cj(成绩)、xm(姓名)。 要求:(1)输入30名学生信息;(2)输出男同学中成绩大于等于90的学生的xm、xb、cj。
时间: 2023-12-22 17:13:14 浏览: 111
好的,以下是一个使用结构体的简单实现方式:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 30
typedef struct {
int xh; // 学号
char xb[10]; // 性别
float cj; // 成绩
char xm[20]; // 姓名
} Student;
int main() {
Student students[MAX_STUDENTS];
int i;
// 输入学生信息
for (i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第%d名学生的信息(xh xb cj xm): ", i+1);
scanf("%d %s %f %s", &students[i].xh, students[i].xb, &students[i].cj, students[i].xm);
}
// 输出男同学中成绩大于等于90的学生的信息
printf("\n成绩大于等于90分的男同学:\n");
for (i = 0; i < MAX_STUDENTS; i++) {
if (strcmp(students[i].xb, "男") == 0 && students[i].cj >= 90) {
printf("学号:%d\t姓名:%s\t性别:%s\t成绩:%.2f\n", students[i].xh, students[i].xm, students[i].xb, students[i].cj);
}
}
return 0;
}
```
程序中定义了一个 `Student` 结构体,包含学号、性别、成绩和姓名等信息。使用一个数组 `students` 存储 30 名学生的信息,通过 `for` 循环逐一输入。然后再使用另一个 `for` 循环遍历数组,输出符合条件的学生信息。
注意:本程序中的输入格式是 `xh xb cj xm`,即用空格隔开四个字段,其中性别是一个字符串,成绩是一个浮点数。如果您需要适应其他的输入格式,请自行修改程序。
阅读全文