#include #include #include #define SIZE 100 struct student { char name[SIZE]; int votes; }; void initialize_database(struct student* database, int size, char* names[], int* votes) { for (int i = 0; i < size; i++) { strcpy(database[i].name, names[i]); database[i].votes = votes[i]; } } // Pomocná funkcia na porovnanie dvoch študentov int compare_students(const void* a, const void* b) { const struct student* studentA = (const struct student*)a; const struct student* studentB = (const struct student*)b; // Ak majú študenti rôzny počet hlasov, porovnáme ich podľa počtu hlasov if (studentA->votes != studentB->votes) { return studentB->votes - studentA->votes; // Zoradenie zostupne podľa počtu hlasov } else { // Ak majú rovnaký počet hlasov, porovnáme ich abecedne podľa mena return strcmp(studentA->name, studentB->name); } } int main() { struct student database[SIZE]; memset(database, 0, SIZE * sizeof(struct student)); int size = 10; // Veľkosť databázy mien študentov char* names[10] = {"Bardos Mrtakrys", "Rita Umhi", "Prylenn Alak", "Lak'hi Elavorg", "Prylenn Alak", "Prylenn Alak", "Prylenn Alak", "Rita Umhi", "Terian Dis"}; int votes[10] = {2, 1, 1, 9, 3, 3, 3, 1, 10}; // Počet hlasov pre každého študenta initialize_database(database, size, names, votes); // Inicializácia databázy mien študentov // Zoradenie databázy študentov podľa počtu hlasov a abecedne qsort(database, size, sizeof(struct student), compare_students); // Výpis zoradenej databázy printf("Zoradeny zoznam studentov podla poctu hlasov a abecedne:\n"); for (int i = 0; i < size; i++) { printf("%d %s\n", database[i].votes, database[i].name); } return 0; }