Как упорядочить фамилии в алфавитном порядке в структуре PATIENT?
Для 5 больных, пробовала написать как в инете но не получилось
typedef struct PATIENT
{
char sex[15];
char name[30];
char surname[15];
int diagnosis;
int date[1];
}PATIENT;
}
for (int g=0; g<5; g++){
printf("Имя: %s Фамилия: %s Пол: %s Год рождения %d Диагноз: %d\n", massive[g].name, massive[g].surname,massive[g].sex, massive[g].date[0], massive[g].diagnosis);
}
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Такое, с qsort, устроит?
typedef struct PATIENT
{
char sex[15];
char name[30];
char surname[15];
int diagnosis;
int date[1];
} PATIENT;
int cmp(const void * a, const void * b)
{
return strcmp(((const PATIENT*)a)->surname,((const PATIENT*)b)->surname);
}
int main()
{
PATIENT massive[5] = {{"","abc","def"},{"","xzy","vcd"},{"","hfk","hdb"},
{"","ghd","vqw"},{"","ffg","ijk"}};
for(int i = 0; i < 5; ++i) printf("%s\t",massive[i].surname); puts("");
qsort(massive,5,sizeof(PATIENT),cmp);
for(int i = 0; i < 5; ++i) printf("%s\t",massive[i].surname); puts("");
}