定义一个包含5个教师成员的结构体数组,教师信息包括职工号、姓名和工资。要求从键盘输入所有教师的信息,并设计一个sort函数实现结构体数组按教师工资由少到多排序。目前,已编辑完成main函数,请编程实现input函数、output函数和sort函数,分别实现教师信息的录入、输出与排序。 /* @Filename: ex701.c @Author: Ju Chengdong @Version: 1.0 @Date: 2021-03-18 @Description: Salary Management System */ #include <stdio.h> #include <string.h> typedef struct teacher{ int id; // 职工号 char name[100]; // 姓名 int salary; // 工资 }teacher; const int NUM = 5; int main(){ void input(teacher *t, int n); void output(teacher *t, int n); void sort(teacher *t, int n); teacher t[NUM]; //教师数组 teacher *pt = t; input(pt, NUM); //为教师数组元素赋值 printf("Before sorting:\n"); output(pt, NUM); //排序前输出 sort(pt, NUM); //按工资排序 printf("After sorting:\n"); output(pt, NUM); //排序后输出 return 0; } /* * 函数名称:input * 函数功能:实现教师信息的键盘输入 * 输入格式:每行输入一个教师的信息,一个教师的各个数据之间用空格分隔; * 教师姓名不能包含空格 * 形式参数:t, struct teacher型指针,教师数组首地址 * 形式参数:n, int型,教师数组元素个数 * 返 回 值:无 */ void input(teacher *t, int n){ // 请编程实现本函数 }
时间: 2023-08-08 12:05:21 浏览: 95
职工结构体数组,从键盘输入N位职工信息,打印输出最高的工资
void input(teacher *t, int n){
int i;
for(i = 0; i < n; i++){
printf("Please enter information for teacher %d:\n", i+1);
scanf("%d %s %d", &(t+i)->id, (t+i)->name, &(t+i)->salary);
}
}
/*
* 函数名称:output
* 函数功能:实现教师信息的输出
* 形式参数:t, struct teacher型指针,教师数组首地址
* 形式参数:n, int型,教师数组元素个数
* 返 回 值:无
*/
void output(teacher *t, int n){
int i;
for(i = 0; i < n; i++){
printf("%d %s %d\n", (t+i)->id, (t+i)->name, (t+i)->salary);
}
}
/*
* 函数名称:sort
* 函数功能:实现按工资从小到大排序
* 形式参数:t, struct teacher型指针,教师数组首地址
* 形式参数:n, int型,教师数组元素个数
* 返 回 值:无
*/
void sort(teacher *t, int n){
int i, j;
teacher temp;
for(i = 0; i < n-1; i++){
for(j = 0; j < n-i-1; j++){
if((t+j)->salary > (t+j+1)->salary){
temp = *(t+j);
*(t+j) = *(t+j+1);
*(t+j+1) = temp;
}
}
}
}
阅读全文