2015-17

输入10个雇员的信息(姓名,工资号),按工资号排序输出。要求雇员的信息用结构体,用两个函数分别完成10个雇员信息的输入及排序。

测试数据:

王7 1007
王4 1004
王3 1003
王1 1001
王2 1002
王9 1009
王5 1005
王8 1008
王6 1006
王0 1000

 

 

 

/*
输入10个雇员的信息(姓名,工资号),按工资号排序输出。
要求雇员的信息用结构体,用两个函数分别完成10个雇员信息的输入及排序。
*/ 

#include <stdio.h>
#include <string.h>
#define N 10    //员工数 

struct Emp  //用于存放姓名和工资号的结构体 
{
    char name[10];
    char id[10];    
};

int main()
{
    void input(struct Emp emp[]); 
    void sort(struct Emp emp[]);
    struct Emp emp[N] , *p = emp;    //指针p指向emp数组(直接把emp当成参数传也可以) 
    input(p);    //负责输入功能的函数 
    sort(p);    //负责排序功能的函数 
    printf("排序后的结果为:\n");
    for(int i = 0 ; i < N ; i++)
    {
        printf("%s,%s\n", emp[i].name, emp[i].id);
    }
    return 0;
}

void input(struct Emp emp[])
{
    printf("请输入十个员工的姓名和工资号:\n");
    for(int i = 0 ; i < N ; i++)
    {
        scanf("%s%s", emp[i].name, emp[i].id);
    }
}

void sort(struct Emp emp[])
{
    struct Emp t;
    for(int i = 0 ; i < N ; i++)    //进行升序排序操作 
    {
        for(int j = i+1 ; j < N ; j++)
        {
            if(strcmp(emp[i].id , emp[j].id) > 0)
            {
                t = emp[i];
                emp[i] = emp[j];
                emp[j] = t;
            }
        }
        
    }
}
posted @ 2022-02-24 16:16  小菜鸡~  阅读(47)  评论(0)    收藏  举报