答案:```c
#include
#include
// 基类 Person
typedef struct {
int id;
char name[50];
} Person;
// 学生类 Student
typedef struct {
Person base; // 继承 Person
char classNum[20];
float score;
} Student;
// 教师类 Teacher
typedef struct {
Person base; // 继承 Person
char title[20];
char department[50];
} Teacher;
// 显示学生信息
void displayStudent(Student s) {
printf("Student ID: %d\n", s.base.id);
printf("Name: %s\n", s.base.name);
printf("Class Number: %s\n", s.classNum);
printf("Score: %.2f\n", s.score);
}
// 显示教师信息
void displayTeacher(Teacher t) {
printf("Teacher ID: %d\n", t.base.id);
printf("Name: %s\n", t.base.name);
printf("Title: %s\n", t.title);
printf("Department: %s\n", t.department);
}
int main() {
// 学生数据输入和显示
Student stu;
printf("Enter student ID: ");
scanf("%d", &stu.base.id);
printf("Enter student name: ");
scanf("%s", stu.base.name);
printf("Enter class number: ");
scanf("%s", stu.classNum);
printf("Enter score: ");
scanf("%f", &stu.score);
displayStudent(stu);
// 教师数据输入和显示
Teacher tea;
printf("Enter teacher ID: ");
scanf("%d", &tea.base.id);
printf("Enter teacher name: ");
scanf("%s", tea.base.name);
printf("Enter title: ");
scanf("%s", tea.title);
printf("Enter department: ");
scanf("%s", tea.department);
displayTeacher(tea);
return 0;
}
```