From e31471908b0e7738bc0c2e1223d767fc04f48459 Mon Sep 17 00:00:00 2001 From: Kapliuk Date: Wed, 20 Mar 2024 23:13:37 +0000 Subject: [PATCH 1/7] =?UTF-8?q?=D0=9E=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=20'cv5/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv5/program.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/cv5/program.c b/cv5/program.c index e69de29..90a1ccc 100644 --- a/cv5/program.c +++ b/cv5/program.c @@ -0,0 +1,83 @@ +#include +#include +#include +#include +#define SIZE 100 + +struct student { + char name[SIZE]; + int votes; +}; + +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) { + return i; + } + } + return -1; +} + +int compare_votes (const void* p1, const void* p2) +{ + struct student* s1 = (struct student*)p1; + struct student* s2 = (struct student*)p2; + return (s2->votes - s1->votes); +} + +int compare_names (const void* p1, const void* p2) +{ + struct student* s1 = (struct student*)p1; + struct student* s2 = (struct student*)p2; + return strcmp(s1->name,s2->name); +} + +int main(){ + int counter = 0; + char name[SIZE]; + memset(name,0,SIZE); + char line[SIZE]; + memset(line,0,SIZE); + struct student databaza[SIZE]; + memset(databaza,0,SIZE*sizeof(struct student)); + int size = 0; + while(fgets(line,SIZE,stdin) && line[0] != '\n'){ + if(line == NULL){ + break; + } + char* end = NULL; + int value = strtol(line,&end,10); + char* zaciatok_mena = end + 1; + if (value == 0){ + break; + } + int velkost_mena = strlen(zaciatok_mena) - 1; + if (velkost_mena > 0){ + memcpy(name,zaciatok_mena,velkost_mena); + } + else{ + printf("nepodarilo sa nacitat meno\n"); + return 0; + } + int id = find_student(databaza,size,name); + if (id< 0){ + memcpy(databaza[counter].name,name,velkost_mena); + databaza[counter].votes = value; + size++; + } + else { + memset(databaza[counter].name,0,velkost_mena); + databaza[id].votes = databaza[id].votes + value; + } + counter++; + } + counter--; + qsort(databaza, size, sizeof(struct student), compare_votes); + qsort(databaza, size, sizeof(struct student), compare_names); + printf("Vysledky:\n"); + for(int i = 0; i < size; i++) { + if(databaza[i].votes != 0) + printf("%d %s\n", databaza[i].votes, databaza[i].name); + } + return 0; + } \ No newline at end of file From e60a359b7a87c653fe5adcdf7f4ebafad613eebd Mon Sep 17 00:00:00 2001 From: Kapliuk Date: Wed, 20 Mar 2024 23:15:23 +0000 Subject: [PATCH 2/7] =?UTF-8?q?=D0=9E=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=20'cv5/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv5/program.c | 1 - 1 file changed, 1 deletion(-) diff --git a/cv5/program.c b/cv5/program.c index 90a1ccc..f97e7cc 100644 --- a/cv5/program.c +++ b/cv5/program.c @@ -73,7 +73,6 @@ int main(){ } counter--; qsort(databaza, size, sizeof(struct student), compare_votes); - qsort(databaza, size, sizeof(struct student), compare_names); printf("Vysledky:\n"); for(int i = 0; i < size; i++) { if(databaza[i].votes != 0) From 67575827e37fc6eecd6561824b2958c1eb095800 Mon Sep 17 00:00:00 2001 From: Kapliuk Date: Thu, 21 Mar 2024 19:04:39 +0000 Subject: [PATCH 3/7] =?UTF-8?q?=D0=9E=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=20'cv5/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv5/program.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cv5/program.c b/cv5/program.c index f97e7cc..ec04cd3 100644 --- a/cv5/program.c +++ b/cv5/program.c @@ -3,7 +3,6 @@ #include #include #define SIZE 100 - struct student { char name[SIZE]; int votes; @@ -42,6 +41,7 @@ int main(){ memset(databaza,0,SIZE*sizeof(struct student)); int size = 0; while(fgets(line,SIZE,stdin) && line[0] != '\n'){ + memset(name,0,SIZE); if(line == NULL){ break; } @@ -72,6 +72,7 @@ int main(){ counter++; } counter--; + qsort(databaza, size, sizeof(struct student), compare_names); qsort(databaza, size, sizeof(struct student), compare_votes); printf("Vysledky:\n"); for(int i = 0; i < size; i++) { @@ -79,4 +80,4 @@ int main(){ printf("%d %s\n", databaza[i].votes, databaza[i].name); } return 0; - } \ No newline at end of file + } From 25638f985e4e707416b0ca0478504ccd50812f4c Mon Sep 17 00:00:00 2001 From: Kapliuk Date: Thu, 21 Mar 2024 19:14:45 +0000 Subject: [PATCH 4/7] =?UTF-8?q?=D0=9E=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=20'cv5/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv5/program.c | 1 + 1 file changed, 1 insertion(+) diff --git a/cv5/program.c b/cv5/program.c index ec04cd3..145cd0b 100644 --- a/cv5/program.c +++ b/cv5/program.c @@ -68,6 +68,7 @@ int main(){ else { memset(databaza[counter].name,0,velkost_mena); databaza[id].votes = databaza[id].votes + value; + size++; } counter++; } From ad49fccc765d6e1261b2a16430c54678a8f3b4ad Mon Sep 17 00:00:00 2001 From: Kapliuk Date: Thu, 21 Mar 2024 19:16:46 +0000 Subject: [PATCH 5/7] =?UTF-8?q?=D0=9E=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=20'cv5/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv5/program.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cv5/program.c b/cv5/program.c index 145cd0b..a601f26 100644 --- a/cv5/program.c +++ b/cv5/program.c @@ -49,7 +49,8 @@ int main(){ int value = strtol(line,&end,10); char* zaciatok_mena = end + 1; if (value == 0){ - break; + printf("Nepodarilo nacitat nic\n"); + return 0; } int velkost_mena = strlen(zaciatok_mena) - 1; if (velkost_mena > 0){ From f5cff7a25b471a460cc65bfbae446984af37d22d Mon Sep 17 00:00:00 2001 From: Kapliuk Date: Thu, 21 Mar 2024 19:18:43 +0000 Subject: [PATCH 6/7] =?UTF-8?q?=D0=9E=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=20'cv5/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv5/program.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cv5/program.c b/cv5/program.c index a601f26..41e8c27 100644 --- a/cv5/program.c +++ b/cv5/program.c @@ -50,7 +50,7 @@ int main(){ char* zaciatok_mena = end + 1; if (value == 0){ printf("Nepodarilo nacitat nic\n"); - return 0; + break; } int velkost_mena = strlen(zaciatok_mena) - 1; if (velkost_mena > 0){ @@ -76,7 +76,8 @@ int main(){ counter--; qsort(databaza, size, sizeof(struct student), compare_names); qsort(databaza, size, sizeof(struct student), compare_votes); - printf("Vysledky:\n"); + if(databaza[0].votes != 0) + printf("Vysledky:\n"); for(int i = 0; i < size; i++) { if(databaza[i].votes != 0) printf("%d %s\n", databaza[i].votes, databaza[i].name); From 4aaee3af93eb3d0c0627e97b3c021d0993affba5 Mon Sep 17 00:00:00 2001 From: Kapliuk Date: Thu, 21 Mar 2024 19:20:59 +0000 Subject: [PATCH 7/7] =?UTF-8?q?=D0=9E=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=20'cv5/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv5/program.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cv5/program.c b/cv5/program.c index 41e8c27..95984b7 100644 --- a/cv5/program.c +++ b/cv5/program.c @@ -49,7 +49,6 @@ int main(){ int value = strtol(line,&end,10); char* zaciatok_mena = end + 1; if (value == 0){ - printf("Nepodarilo nacitat nic\n"); break; } int velkost_mena = strlen(zaciatok_mena) - 1; @@ -76,7 +75,10 @@ int main(){ counter--; qsort(databaza, size, sizeof(struct student), compare_names); qsort(databaza, size, sizeof(struct student), compare_votes); - if(databaza[0].votes != 0) + + if(databaza[0].votes == 0) + printf("Nepodarilo nacitat nic\n"); + else printf("Vysledky:\n"); for(int i = 0; i < size; i++) { if(databaza[i].votes != 0)