From bc34a78e026f012ea3f81639caeb6cf108a46e37 Mon Sep 17 00:00:00 2001 From: Mykyta Sadchenko Date: Wed, 20 Mar 2024 13:16:08 +0100 Subject: [PATCH] h --- cv5/program.c | 92 +++++---------------------------------------------- 1 file changed, 9 insertions(+), 83 deletions(-) diff --git a/cv5/program.c b/cv5/program.c index 7446a12..b97fe5f 100644 --- a/cv5/program.c +++ b/cv5/program.c @@ -9,37 +9,6 @@ struct student { char name[SIZE]; int votes; }; -/*char* read_line(char* buffer, int size) { - char* result = fgets(buffer, size, stdin); - if (result) { - // Удаление символа новой строки, если он есть - char* newline = strchr(buffer, '\n'); - if (newline) - *newline = '\0'; - } - return result; -}*/ - - -/*char* read_line(char* buffer, int size) { - char* result = fgets(buffer, size, stdin); - if (result) { - - buffer[strcspn(buffer, "\n")] = '\0'; - } - return result; -}*/ - -/*int read_input(int* votes, char* name, int size) { - char line[SIZE]; - if (fgets(line, size, stdin) != NULL) { - - if (sscanf(line, "%d %s", votes, name) == 2) { - return 1; - } - } - return 0; -}*/ int read_input(int* votes, char* name, int size) { char line[SIZE]; @@ -48,22 +17,23 @@ int read_input(int* votes, char* name, int size) { char* space = strchr(line, ' '); if (space != NULL) { *votes = atoi(line); - strcpy(name, space + 1); - - char* newline = strchr(name, '\n'); + strcpy(name, space + 1); + char* newline = strchr(name, '\n'); if (newline) *newline = '\0'; return 1; } } - return 0; + return 0; } + int parse_int(const char* str) { return atoi(str); } + int find_student(struct student* students, int size, const char* name) { for (int i = 0; i < size; ++i) { if (strcmp(students[i].name, name) == 0) { @@ -83,7 +53,7 @@ void add_student(struct student* students, int* size, const char* name, int vote students[*size].votes = votes; (*size)++; } else { - printf("Database is crowded!\n"); + printf("Datebase is crowded!\n"); } } else { students[index].votes += votes; @@ -97,58 +67,13 @@ int compare_students(const void* p1, const void* p2) { if (s1->votes != s2->votes) { - return s2->votes - s1->votes; + return s2->votes - s1->votes; } else { return strcmp(s1->name, s2->name); } } -/*int main() { - struct student database[SIZE]; - int size = 0; - - char line[SIZE]; - - - while (read_line(line, SIZE)) { - int votes = parse_int(line); - read_line(line, SIZE); - add_student(database, &size, line, votes); - } - - - qsort(database, size, sizeof(struct student), compare_students); - - - printf("Vysledky hlasovania:\n"); - for (int i = 0; i < size; ++i) { - printf("%s: %d Hlas(ov) \n", database[i].name, database[i].votes); - } - - return 0; -}*/ -/*int main() { - struct student database[SIZE]; - int size = 0; - - int votes; - char name[SIZE]; - - - while (read_input(&votes, name, SIZE)) { - add_student(database, &size, name, votes); - qsort(database, size, sizeof(struct student), compare_students); - - - printf("Vysledky hlasovania:\n"); - for (int i = 0; i < size; ++i) { - printf("%d %s\n", database[i].votes, database[i].name); - } - } - - return 0; -}*/ int main() { struct student database[SIZE]; int size = 0; @@ -165,10 +90,11 @@ int main() { qsort(database, size, sizeof(struct student), compare_students); - printf("Vysledky hlasovania:\n"); + printf("Vysledky:\n"); for (int i = 0; i < size; ++i) { printf("%d %s\n", database[i].votes, database[i].name); } return 0; } +