定义一个存放学生信息的结构体类型,学生信息包括:学号、姓名、性别、院系。要求输入5个学生的相关信息后,按照学号顺序输出这些学生的信息,然后输入院系名称,统计并输出该院学生人数。 输入格式: 5个学生
时间: 2024-10-05 10:00:49 浏览: 111
学生信息管理系统, 实现学生信息包括:学号、姓名、性别、年龄、班级等信息
5星 · 资源好评率100%
首先,我们可以创建一个名为`Student`的结构体类型,包含学号`ID`、姓名`Name`、性别`Gender`和院系`Department`四个字段:
```c
struct Student {
int ID;
char Name[50];
char Gender[10];
char Department[50];
};
```
接下来,我们定义一个函数`inputStudents()`用于接收用户输入的学生信息,并存储到结构体数组中:
```c
void inputStudents(struct Student students[], int numStudents) {
for (int i = 0; i < numStudents; i++) {
printf("请输入第%d个学生的详细信息:\n", i + 1);
scanf("%d %s %s %s", &students[i].ID, students[i].Name, students[i].Gender, students[i].Department);
}
}
```
为了按照学号顺序输出学生信息,我们可以遍历结构体数组:
```c
void printStudentsInOrder(struct Student students[], int numStudents) {
for (int i = 0; i < numStudents; i++) {
printf("学号:%d, 姓名:%s, 性别:%s, 院系:%s\n", students[i].ID, students[i].Name, students[i].Gender, students[i].Department);
}
}
```
最后,我们需要一个函数来统计并输出特定院系的学生人数:
```c
int countStudentsByDepartment(struct Student students[], int numStudents, const char *department) {
int count = 0;
for (int i = 0; i < numStudents; i++) {
if (strcmp(students[i].Department, department) == 0) {
count++;
}
}
return count;
}
int main() {
struct Student students[5];
int numStudents = 5;
// 输入学生信息
inputStudents(students, numStudents);
// 按照学号顺序打印学生信息
printStudentsInOrder(students, numStudents);
// 输入部门名称并统计人数
char department[50];
printf("请输入要查询的院系名称: ");
scanf("%s", department);
int studentsInDepartment = countStudentsByDepartment(students, numStudents, department);
printf("该部门有 %d 名学生。\n", studentsInDepartment);
return 0;
}
```
现在,你可以运行这个程序,输入五名学生的数据,然后选择一个院系查看其学生人数。
阅读全文