diff --git a/cv5/program.c b/cv5/program.c new file mode 100644 index 0000000..09e4514 --- /dev/null +++ b/cv5/program.c @@ -0,0 +1,89 @@ +#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; //ak najde studenta + } + } + printf("nenaslo studenta\n"); // ak nenajde studenta + return -1; +} + + +int compare(const void* p1, const void* p2){ + const struct student* s1 = (const struct student*)p1; + const struct student* s2 = (const struct student*)p2; + return strcmp(s2->name, s1->name); +} + + +int main(){ + + struct student databaza[SIZE]; + memset(databaza, 0, SIZE*sizeof(struct student)); //inicializujem pamat, vynulujem + + int size = 0; + +//nacitanie jednej polozky do databazy + char line[SIZE]; + memset(line,0,SIZE); + char* r = fgets(line,SIZE,stdin); + if (r == NULL){ +} + +//nacitanie celeho cisla, premiena kym nepride na znak ktory nieje cislo + char* end = NULL; + int value = strtol(line,&end,10); + if (value == 0){ +} +// pomocné pole + char name[SIZE]; +// vynulujeme + memset(name,0,SIZE); +// Vypocitame zaciatok mena +// Jedno miesto za medzerou + char* start_name = end + 1; //urcenie zaciatku mena +// Velkost mena je pocet znakov do konca retazca +// minus koniec riadka + int name_size = strlen(start_name) - 1; //urcenie konca mena + if (name_size > 0){ +// nakopirujeme + memcpy(name,start_name,name_size); +// Na konci je v poli name ulozeny retazec s menom +// bez konca riadka a s nulou na konci +} +else { +printf( "nepodarilo sa nacitat meno \n"); +} + +//prejde vsetky polozky v databaze + +int id = find_student(databaza,size,name); +if (id< 0){ + if (size < SIZE){ + memcpy(databaza[size].name,name,name_size); + databaza[size].votes = value; + size++; + } + else{ + printf("databaza je plna\n"); + } +} +else { + databaza[id].votes = value; +} + + return 0; +} \ No newline at end of file diff --git a/cv5/program.exe b/cv5/program.exe new file mode 100644 index 0000000..532b0ec Binary files /dev/null and b/cv5/program.exe differ