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; } } } }

浙公网安备 33010602011771号