diff --git a/du4/progra.c b/du4/progra.c new file mode 100644 index 0000000..37923f2 --- /dev/null +++ b/du4/progra.c @@ -0,0 +1,22 @@ +#include +#include +#include +#include + +#define VELKOST_POLA 50 +#define CISLA 100 + +int znaky(char* vstup); +char upraz(char *vstup, float *pervcislo, float *drugcislo, float vysledok); +char control(char *upraz, char *operazia, float *pervcislo, float *drugcislo, float vysledok); +float vypocet(float cislo, float cislo2, char operazia); +void znaky(char* vstup, char nepotreb); + +int main(){ +int riadky, a, nepovolznak; +float pervcislo[CISLA]; +float drugcislo[CISLA]; +float vysledok[CISLA]; +float kontrolvysledok[CISLA]; + +memset diff --git a/du4/program.c b/du4/program.c new file mode 100644 index 0000000..e69de29 diff --git a/du5/program.c b/du5/program.c new file mode 100644 index 0000000..13c8033 --- /dev/null +++ b/du5/program.c @@ -0,0 +1,120 @@ +#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; +} + + + + + + +