怎么用c语言写宿舍分配代码
时间: 2024-01-16 20:02:50 浏览: 35
宿舍分配代码通常涉及到学生信息和宿舍分配规则等方面的处理。以下是一个简单的示例,演示了如何使用C语言编写一个宿舍分配代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENTS 100
#define MAX_DORMS 10
typedef struct {
char name[50];
int age;
int gender;
} Student;
typedef struct {
Student students[MAX_STUDENTS];
int numStudents;
} Dorm;
void assignDorm(Student* student, Dorm* dorm) {
// 在这里编写你的宿舍分配规则
// 可以根据学生的性别、年龄等条件进行分配
}
int main() {
Dorm dorms[MAX_DORMS];
int numDorms;
printf("请输入宿舍数量:");
scanf("%d", &numDorms);
for (int i = 0; i < numDorms; i++) {
printf("请输入宿舍%d的学生数量:", i + 1);
scanf("%d", &dorms[i].numStudents);
for (int j = 0; j < dorms[i].numStudents; j++) {
printf("请输入学生%d的姓名:", j + 1);
scanf("%s", dorms[i].students[j].name);
printf("请输入学生%d的年龄:", j + 1);
scanf("%d", &dorms[i].students[j].age);
printf("请输入学生%d的性别(0表示男性,1表示女性):", j + 1);
scanf("%d", &dorms[i].students[j].gender);
}
}
// 宿舍分配
for (int i = 0; i < numDorms; i++) {
for (int j = 0; j < dorms[i].numStudents; j++) {
assignDorm(&dorms[i].students[j], &dorms[i]);
}
}
// 输出宿舍分配结果
for (int i = 0; i < numDorms; i++) {
printf("宿舍%d的学生信息:\n", i + 1);
for (int j = 0; j < dorms[i].numStudents; j++) {
printf("学生姓名:%s\n", dorms[i].students[j].name);
printf("学生年龄:%d\n", dorms[i].students[j].age);
printf("学生性别:%s\n", dorms[i].students[j].gender == 0 ? "男" : "女");
}
printf("\n");
}
return 0;
}
```
在这个示例中,我们使用了两个结构体,`Student`表示学生的信息,`Dorm`表示宿舍及其包含的学生。代码中的`assignDorm`函数是用来实现宿舍分配规则的地方,你可以根据自己的需求在这个函数中进行修改。在`main`函数中,我们首先获取宿舍数量和每个宿舍的学生数量,然后逐个输入学生的信息,最后进行宿舍分配并输出结果。
请注意,这只是一个简单的示例代码,实际的宿舍分配规则可能更加复杂。你可以根据自己的需求对代码进行修改和扩展。