Aktualizovat du2/program.c

This commit is contained in:
Tomáš Vlček 2026-03-12 01:45:49 +00:00
parent e78241fd91
commit 5b737476c2

View File

@ -24,6 +24,9 @@ int main() {
char najdMeno [32]; char najdMeno [32];
char najdPriezvisko [32]; char najdPriezvisko [32];
int najdPocetHlasov = 0; int najdPocetHlasov = 0;
int x = 0;
char posledneMeno[SIZE];
posledneMeno[0] = '\0';
//array instancii struktur studentov //array instancii struktur studentov
struct student DBStudenti[20]; struct student DBStudenti[20];
@ -31,8 +34,6 @@ int main() {
//prednastavenie pamati //prednastavenie pamati
memset(DBStudenti, 0, sizeof(DBStudenti)); memset(DBStudenti, 0, sizeof(DBStudenti));
//pomocny index
int x = 0;
//spracovanie inputu, vycitavanie najdenych mien a najdenych poctov hlasov z retazca //spracovanie inputu, vycitavanie najdenych mien a najdenych poctov hlasov z retazca
//bude citat dovtedy, pokial nedosiahne limit studentDB array-u (20 prvkov max) alebo fgets() sa nedostane na koniec suboru //bude citat dovtedy, pokial nedosiahne limit studentDB array-u (20 prvkov max) alebo fgets() sa nedostane na koniec suboru
@ -40,7 +41,8 @@ int main() {
{ {
if(sscanf(line, "%d %s %s", &najdPocetHlasov, najdMeno, najdPriezvisko) == 3) if(sscanf(line, "%d %s %s", &najdPocetHlasov, najdMeno, najdPriezvisko) == 3)
{ {
//prekopiruje najdene priezviska (LEN ak sscanf() najde vsetky 3 hodnoty) //prekopiruje udaje najdeneho zaznamu do DB
// (LEN ak sscanf() najde vsetky 3 hodnoty)
strcpy(DBStudenti[x].meno, najdMeno); strcpy(DBStudenti[x].meno, najdMeno);
strcpy(DBStudenti[x].priezvisko, najdPriezvisko); strcpy(DBStudenti[x].priezvisko, najdPriezvisko);
DBStudenti[x].pocetHlasov = najdPocetHlasov; DBStudenti[x].pocetHlasov = najdPocetHlasov;
@ -65,6 +67,11 @@ int main() {
{ {
break; break;
} }
//vynechaj rovnake predosle zaznamy
if (strcmp(DBStudenti[i].meno, DBStudenti[i-1].meno) == 0)
{
continue;
}
//malo by vypisovat zaznamy takto: //malo by vypisovat zaznamy takto:
//10_Tomas_Vlcek //10_Tomas_Vlcek
printf("%d %s %s\n", DBStudenti[i].pocetHlasov, DBStudenti[i].meno, DBStudenti[i].priezvisko); printf("%d %s %s\n", DBStudenti[i].pocetHlasov, DBStudenti[i].meno, DBStudenti[i].priezvisko);
@ -79,14 +86,9 @@ int main() {
struct student *s1 = (struct student *)p1; struct student *s1 = (struct student *)p1;
struct student *s2 = (struct student *)p2; struct student *s2 = (struct student *)p2;
if (s1->meno == s2->meno)
{
//vrat len jeden zaznam, AK sa rovnaju
return s1->meno;
}
if (s1->pocetHlasov == s2->pocetHlasov) if (s1->pocetHlasov == s2->pocetHlasov)
{ {
//vrati lexikograficky zorad. instancie v poli (podla mena, NIE priezviska) //vrati lexikograficky zoradene instancie v poli (podla mena, NIE priezviska)
return strcmp(s1->meno, s2->meno); return strcmp(s1->meno, s2->meno);
} }