Как упорядочить фамилии в алфавитном порядке в структуре 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("");
}
→ Ссылка