/*
17.输入10个雇员的信息(姓名,工资号),按工资号排序输出。要求雇员的信息用结构
体, 用两个函数分别完成10个雇员信息的输入及排序。
*/
/*
t1 1234
t2 456
t3 888
t4 254
t5 21234
t6 23
t7 223
t8 889
t9 534
t10 1234
*/
#include <stdio.h>
#include <string.h>
struct _employee {
char name[20];
int salaryNO;
}employee_info[10], *pInfo;
void inputInfo();
void sortInfo();
int main() {
int i;
inputInfo();
sortInfo();
for (i = 0; i < 10; ++i) {
printf("name:%s, salaryNO:%d\n", employee_info[i].name, employee_info[i].salaryNO);
}
return 0;
}
void inputInfo() {
int i;
for (i = 0; i < 10; ++i) {
scanf("%s%d", &employee_info[i].name, &employee_info[i].salaryNO);
getchar();//吸收换行符
}
}
void sortInfo() {
int i, j, temp_salaryNO;
char temp_name[20];
for (i = 0; i < 10 - 1; ++i) {
for (j = 0; j < 10 - i - 1; ++j) {
if (employee_info[j].salaryNO > employee_info[j + 1].salaryNO) {
struct _employee temp;
memcpy(&temp, &employee_info[j], sizeof(struct _employee));
memcpy(&employee_info[j], &employee_info[j + 1], sizeof(struct _employee));
memcpy(&employee_info[j + 1], &temp, sizeof(struct _employee));
/*strcpy(temp_name, employee_info[j].name);
temp_salaryNO = employee_info[j].salaryNO;
strcpy(employee_info[j].name, employee_info[j + 1].name);
employee_info[j].salaryNO = employee_info[j + 1].salaryNO;
strcpy(employee_info[j + 1].name, temp_name);
employee_info[j + 1].salaryNO = temp_salaryNO;*/
}
}
}
}