求编程,不会写了 c语言

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果


#include<stdio.h>
#include<stdlib.h>
#include<math.h>

typedef struct{
    char name[10];
    int money;
    char sex;
}employee_t;

struct{
    int p_num;
    employee_t * p_employee[1000];
    int q_num;
    employee_t * q_employee[1000];
}employee_pool;

void sort_teacher_name(employee_t **employee,int num)
{
    employee_t *temp=0;
    for(int i=0;i<num-1;++i)
        for(int j=i+1;j<num;++j)
        {
            if(strcmp(employee[i]->name,employee[j]->name)>0)
            {
                temp = employee[i];
                employee[i] = employee[j];
                employee[j] = temp;
            }
        }
}

int main()
{
    int n=0;
    char s=0;
    int max_salary=0,min_salary=-1,woman=0;
    float avg_salary=0.f;
    scanf("%d",&n);
    
    memset(&employee_pool,0,sizeof(employee_pool));
    for(int i=0;i<n;++i)
    {
        employee_t *teacher = (employee_t*)malloc(sizeof(employee_t));
        memset(teacher,0,sizeof(employee_t));
        scanf("%s %c %c %d",teacher->name,&s,&teacher->sex,&teacher->money);
        if(s=='p')
            employee_pool.p_employee[employee_pool.p_num++]=teacher;
        else
            employee_pool.q_employee[employee_pool.q_num++]=teacher;
        if(max_salary<teacher->money)
            max_salary = teacher->money;
        if(min_salary>teacher->money)
            min_salary = teacher->money;
        if(teacher->sex=='w')
            ++woman;
        avg_salary +=(float)teacher->money;
    }
    sort_teacher_name(employee_pool.p_employee,employee_pool.p_num);
    sort_teacher_name(employee_pool.q_employee,employee_pool.q_num);
    
    for(int i=0;i<employee_pool.p_num;++i)
        printf("%s p %c %d\n",employee_pool.p_employee[i]->name,
                employee_pool.p_employee[i]->sex,
                employee_pool.p_employee[i]->money);
    for(int i=0;i<employee_pool.q_num;++i)
        printf("%s q %c %d\n",employee_pool.q_employee[i]->name,
                employee_pool.q_employee[i]->sex,
                employee_pool.q_employee[i]->money);
    
    printf("%f %d %d %d %f\n",avg_salary/(float)n,max_salary,min_salary,woman,(float)woman/(float)n);
    
    for(int i=0;i<employee_pool.p_num;++i)
        if(employee_pool.p_employee[i]->money < 3000)
            printf("%s %d\n",employee_pool.p_employee[i]->name,
                    employee_pool.p_employee[i]->money+500);
    for(int i=0;i<employee_pool.q_num;++i)
        if(employee_pool.q_employee[i]->money < 3000)
            printf("%s %d\n",employee_pool.q_employee[i]->name,
                    employee_pool.q_employee[i]->money+500);
    
    return 0;
}