酷友报道 2021-11-20 15:53 采纳率: 100%
浏览 41
已结题

求编程,不会写了 c语言

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

img

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

1条回答 默认 最新

  • 从善若水 5G/6G通信领域优质创作者 2021-11-20 16:20
    关注
    
    
    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月28日
  • 已采纳回答 11月20日
  • 创建了问题 11月20日

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算