我有一个结构
typedef struct {
char name[100];
int born_date;
}patient;
我必须编写一个函数,该函数将按出生日期对该数组进行排序。功能看起来像void rendez(patient patients[], int n) {}
其中,n数是数组长度,而Patients []数组包含有关病人的数据。我知道这不是一项艰巨的任务,但我仍会学习这种语言(C)。我可以使用qsort函数,但这对我来说是新的。我倾听每一个小费,感谢您的帮助
qsort使用用户定义的比较。您将需要一个辅助函数来比较2个项目
int compare_patient_dob(void *a, void *b)
{
patient *pa = (patient *) a ;
patient *pb = (patient *) b ;
// Assuming born_dates are comparable, e.g., YYYYMMDD
return pa->born_date - pb->born_date ;
}
...
// Later in the rendez function.
qsort(patients, n, sizeof(patients[0], compare_patient_dob) ;