将结构体数组SI[MAX]使用排序算法然后输出即可。
以下给题主列出对SI[MAX]的冒泡排序代码:
void bubbleSort(struct Salary_Info arr[], int len) {
int i, j
struct Salary_Info temp;
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - 1 - i; j++)
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
调用bubbleSort函数:
bubbleSort(SI, MAX) /*注意这里的MAX需要换成实际的数组长度(职工人数)*/
可以使用qsort函数进行排序,这个可以自定义排序的规则。
struct Salary_info{
int Card_No;
char name[20];
};
int cmp_Card_No(const void *a,const void *b)
{
struct Salary_info *aa = (struct Salary_info *)a;
struct Salary_info *bb = (struct Salary_info *)b;
return (aa->Card_No > bb->Card_No ? 1 : -1 );
}
int main()
{
struct Salary_info SI[3] ={{3,"LiBai"},{1,"LiSi"},{2,"LiWu"}};
qsort(SI,3,sizeof(SI[0]),cmp_Card_No);
int i;
for(i = 0;i < 3;i ++)
{
printf("ID:%d name:%s\n",SI[i].Card_No,SI[i].name);
}
return 0;
}