From 8d78173ad8f07721f6228287291f393c2b397250 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 24 Mar 2023 13:23:01 +0000 Subject: [PATCH] Update 'du5/ program.c' --- du5/ program.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/du5/ program.c b/du5/ program.c index e69de29..d3d6d89 100644 --- a/du5/ program.c +++ b/du5/ program.c @@ -0,0 +1,114 @@ +#include +#include +#include + +struct celovek{ //definovanie štruktúry s názvom 'celovek' + int golos; + char name[60]; +} + +void printAll(struct celovek celovek[50],int number_celovek){ //funkcia na vytlačenie všetkých prvkov poľa 'celovek' + printf("Vysledky:\n"); + for (size_t i = 0; i < number_celovek; i++){ + printf("%d", celovek[i].golos); + printf("%s", celovek[i].name); + } +} + +void readDellSame(bool odinakovyi, bool dobre, int* number_celovek, struct celovek celovek[50]){ //funkcia na čítanie a mazanie duplicitných záznamov z poľa 'celovek' + for (size_t i = 0; i >=0; i++) + { + char step.name[60]; + int step.golos =0; + int b = scanf("%d", &step.golos); + + if (b == -1){ + break; + } + if (step.golos == 0){ + dobre = true; + } + + fgets(step.name, 60 , stdin); //prečítať riadok z stdin + + for (size_t j = 0; j <*number_celovek; j++){ + if(strcmp (celovek[j].name, step.name)==0 && dobre == false ){ //porovnať reťazce + celovek[j].golos += step.golos; + odinakovyi = true; + i--; + } + } + if ((odinakovyi == false|| *number.celovek == 0) && dobre == false) + { + clovek[i].holos = step_holos; + strcpy(celovek[i].name, step.name); //strcpy - oblasti pamäte kopírovania + *number.celovek = *number.celovek +1 ; + } + odinakovyi = false; + } +} + +void sort(int number.celovek, struct celovek celovek[50]){ //funkcia na triedenie poľa 'celovek' na základe počtu 'golov' a 'name' + for (size_t i = 0; i celovek[j].name[1]){ + int tmp = celovek[i].golos; + char tmp_name[60]; + strcpy(tmp_name, celovek[i].name); + + celovek[i].golos = celovek[j].golos; + strcpy(celovek[i].name, celovek[j].name); + + celovek[j].golos = tmp; + strcpy(celovek[j].name, tmp_name); + } + + if(celovek[i].name[1] == celovek[j].name[1]){ + if(celovek[i].name[2] > celovek[j].name[2]){ + int tmp = celovek[i].golos; + char tmp_name[60]; + strcpy(tmp_name, celovek[i].name); + + celovek[i].golos = celovek[j].golos; + strcpy(celovek[i].name, celovek[j].name); + + celovek[j].golos = tmp; + strcpy(celovek[j].name, tmp_name); + } + } + } + } + } +} + +int main(){ + struct celovek celovek[50]; + int number.celovek = 0; + bool odinakovyi = false; + bool dobre = false; + readDellSame(odinakovyi, dobre, &number.celovek,celovek); + + for (size_t i = 0; i < number.celovek-1; i++){ + for (size_t j = 0; j < number_clovek - i-1; j++){ + if (celovek[j].golos < celovek[j+1].golos){ + int tmp = celovek[j+1].golos; + char tmp_name[60]; + strcpy(tmp_name, celovek[j+1].name); + + celovek[j+1].golos = celovek[j].golos; + strcpy(celovek[j+1].name, celovek[j].name); + + celovek[j].golos = tmp; + strcpy(celovek[j].name, tmp_name); + } + + } + + } + sort(number.celovek, celovek); + printAll(celovek, number.celovek); + return 0; +} \ No newline at end of file