定义一个包含5个教师成员的结构体数组,教师信息包括职工号、姓名和工资。要求从键盘输入所有教师的信息,并设计一个sort函数实现结构体数组按教师工资由少到多排序。目前,已编辑完成main函数,请编程实现input函数、output函数和sort函数,分别实现教师信息的录入、输出与排序。,使用C语言
时间: 2024-02-11 18:07:51 浏览: 193
使用结构体数组,利用函数实现按学生学号和姓名的查询操作.c
好的,以下是使用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_TEACHERS 5
typedef struct Teacher {
int id;
char name[20];
double salary;
} Teacher;
void input(Teacher* teachers, int num) {
for(int i=0; i<num; i++) {
printf("请输入第%d个教师的职工号、姓名和工资(用空格分开):", i+1);
scanf("%d %s %lf", &teachers[i].id, teachers[i].name, &teachers[i].salary);
}
}
void output(Teacher* teachers, int num) {
printf("职工号\t姓名\t工资\n");
for(int i=0; i<num; i++) {
printf("%d\t%s\t%.2lf\n", teachers[i].id, teachers[i].name, teachers[i].salary);
}
}
int cmp(const void* a, const void* b) {
Teacher* ta = (Teacher*)a;
Teacher* tb = (Teacher*)b;
return ta->salary - tb->salary;
}
void sort(Teacher* teachers, int num) {
qsort(teachers, num, sizeof(Teacher), cmp);
}
int main() {
Teacher teachers[MAX_TEACHERS];
input(teachers, MAX_TEACHERS);
sort(teachers, MAX_TEACHERS);
output(teachers, MAX_TEACHERS);
return 0;
}
```
在这个代码中,我们同样定义了一个名为`Teacher`的结构体,包含了三个成员变量:职工号、姓名和工资。然后我们输入了所有教师的信息,并将其存储在一个结构体数组中。最后,我们使用`qsort`函数对结构体数组进行排序,排序的方式是按照教师工资由少到多排序。最后,我们输出排序后的结果。
阅读全文