用c语言写代码,3. 设有若干个人员的数据,其中有学生和教师。学生的数据中包括:姓名、号码、性别、职业、班级。教师的数据包括:姓名、号码、性别、职业、职务。要求输入人员的数据,然后再输出。
时间: 2023-07-10 13:06:22 浏览: 59
C语言实现派件管理系统,内有代码,文档和录屏——数据结构课设-派件员.zip
以下是用C语言实现该功能的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
typedef struct student {
char name[20];
char number[10];
char gender[5];
char occupation[20];
char class[10];
} Student;
// 定义教师结构体
typedef struct teacher {
char name[20];
char number[10];
char gender[5];
char occupation[20];
char position[20];
} Teacher;
int main() {
int n, i;
printf("请输入人员数量:");
scanf("%d", &n);
// 动态分配内存
Student *students = (Student *) malloc(n * sizeof(Student));
Teacher *teachers = (Teacher *) malloc(n * sizeof(Teacher));
// 输入学生信息
printf("请输入学生信息:\n");
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的号码:", i + 1);
scanf("%s", students[i].number);
printf("请输入第%d个学生的性别:", i + 1);
scanf("%s", students[i].gender);
printf("请输入第%d个学生的职业:", i + 1);
scanf("%s", students[i].occupation);
printf("请输入第%d个学生的班级:", i + 1);
scanf("%s", students[i].class);
}
// 输入教师信息
printf("请输入教师信息:\n");
for (i = 0; i < n; i++) {
printf("请输入第%d个教师的姓名:", i + 1);
scanf("%s", teachers[i].name);
printf("请输入第%d个教师的号码:", i + 1);
scanf("%s", teachers[i].number);
printf("请输入第%d个教师的性别:", i + 1);
scanf("%s", teachers[i].gender);
printf("请输入第%d个教师的职业:", i + 1);
scanf("%s", teachers[i].occupation);
printf("请输入第%d个教师的职务:", i + 1);
scanf("%s", teachers[i].position);
}
// 输出学生信息
printf("学生信息如下:\n");
for (i = 0; i < n; i++) {
printf("姓名:%s,号码:%s,性别:%s,职业:%s,班级:%s\n",
students[i].name, students[i].number, students[i].gender,
students[i].occupation, students[i].class);
}
// 输出教师信息
printf("教师信息如下:\n");
for (i = 0; i < n; i++) {
printf("姓名:%s,号码:%s,性别:%s,职业:%s,职务:%s\n",
teachers[i].name, teachers[i].number, teachers[i].gender,
teachers[i].occupation, teachers[i].position);
}
// 释放内存
free(students);
free(teachers);
return 0;
}
```
在这个程序中,我们定义了两个结构体:`Student`和`Teacher`,用于存储学生和教师的数据。在`main()`函数中,我们首先输入人员数量,然后动态分配内存来存储这些数据。接下来,我们分别输入学生和教师的数据,并输出它们。最后,我们释放了动态分配的内存。
注意,为了让用户输入字符串,我们使用了`scanf()`函数来读取输入。但是,由于`scanf()`函数会在空格和换行符处停止读取,所以如果用户输入了含有空格的字符串,那么只有第一个单词会被正确读取。如果需要读取含有空格的字符串,可以使用`fgets()`函数。
阅读全文