教师信息管理 (可选用结构体数组或链表完成) 。 已知教师对应的数据类型定义如下,包括:编号、部门、性别。 struct teacher{ char id[10]; char dept[30]; char sex; }; 请编写程序统计某一部门(注意:不是所有部门)的教师男女比例值。 输入信息提示:"请输入教师人数:\n" 输入信息格式:"%d" 输入信息提示:"请输入第%d个教师的编号:" 输入信息格式:"%d" 输入信息提示:"请入第%d个教师的部门:" 输入信息格式:"%d" 输入信息提示
时间: 2023-07-19 22:44:57 浏览: 98
教师信息管理
以下是使用结构体数组完成教师信息管理并统计某一部门男女比例的程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_TEACHERS 100
struct teacher {
char id[10];
char dept[30];
char sex;
};
int main() {
struct teacher teachers[MAX_TEACHERS];
int n, i, male_count = 0, female_count = 0;
char dept[30];
printf("请输入教师人数:\n");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入第%d个教师的编号:", i + 1);
scanf("%s", teachers[i].id);
printf("请入第%d个教师的部门:", i + 1);
scanf("%s", teachers[i].dept);
printf("请输入第%d个教师的性别(m/f):", i + 1);
scanf(" %c", &teachers[i].sex);
}
printf("请输入要统计的部门:");
scanf("%s", dept);
for (i = 0; i < n; i++) {
if (strcmp(teachers[i].dept, dept) == 0) {
if (teachers[i].sex == 'm') {
male_count++;
} else if (teachers[i].sex == 'f') {
female_count++;
}
}
}
printf("%s部门教师男女比例为:%d:%d\n", dept, male_count, female_count);
return 0;
}
```
在程序中,首先定义了一个结构体 `teacher`,包含了教师的编号、部门和性别。然后定义了一个结构体数组 `teachers`,用于存储输入的教师信息。接下来,用户需要输入教师的人数,然后依次输入每个教师的编号、部门和性别。最后,用户需要输入要统计的部门,程序会遍历教师信息数组,统计该部门的教师男女比例,并输出结果。
注意,在输入性别时,需要加上一个空格,以避免上一次输入的回车符被读入,导致无法正确读取性别。此外,在比较部门名称时,需要使用 `strcmp` 函数进行字符串比较。
阅读全文