用c语言写下列题目:设有一个教师与学生通用的表格,教师的数据有姓名、年龄、职业、教研室四项,学生有姓名、年龄、专业、班级四项,编程输入人员的数据,再以表格输出。
时间: 2024-10-01 19:07:47 浏览: 36
在 C 语言中编写这样的程序,你可以使用结构体(structs)来表示教师和学生的数据,并结合数组或链表来存储数据。首先,定义两个结构体分别代表教师和学生:
```c
#include <stdio.h>
#include <string.h>
// 教师结构体
typedef struct Teacher {
char name[50];
int age;
char profession[50];
char department[50];
} Teacher;
// 学生结构体
typedef struct Student {
char name[50];
int age;
char major[50];
char class_id[50];
} Student;
// 结构体数组用于存储数据
Teacher teachers[100];
Student students[100];
int main() {
// 输入教师数据
printf("请输入教师信息 (姓名、年龄、职业、教研室)(输入 'q' 结束):\n");
while (true) {
Teacher temp_teacher;
scanf("%s %d %s %s", temp_teacher.name, &temp_teacher.age, temp_teacher.profession, temp_teacher.department);
if (strcmp(temp_teacher.name, "q") == 0)
break;
teachers[current_teacher_index++] = temp_teacher; // current_teacher_index用于跟踪已添加教师的数量
}
// 输入学生数据
printf("\n请输入学生信息 (姓名、年龄、专业、班级)(输入 'q' 结束):\n");
while (true) {
Student temp_student;
scanf("%s %d %s %s", temp_student.name, &temp_student.age, temp_student.major, temp_student.class_id);
if (strcmp(temp_student.name, "q") == 0)
break;
students[current_student_index++] = temp_student; // current_student_index用于跟踪已添加学生的信息
}
// 输出所有数据
printf("\n教师数据:\n");
for (int i = 0; i < current_teacher_index; i++) {
printf("姓名:%s, 年龄:%d, 职业:%s, 研究室:%s\n", teachers[i].name, teachers[i].age, teachers[i].profession, teachers[i].department);
}
printf("\n学生数据:\n");
for (int i = 0; i < current_student_index; i++) {
printf("姓名:%s, 年龄:%d, 专业:%s, 班级:%s\n", students[i].name, students[i].age, students[i].major, students[i].class_id);
}
return 0;
}
```
在这个例子中,我们假设每个数据项最多49个字符,并用`current_teacher_index`和`current_student_index`来跟踪当前输入的数据项数量。用户可以一直输入直到输入 'q' 来结束。
阅读全文