Aktualizovat du2/program.c
This commit is contained in:
parent
e78241fd91
commit
5b737476c2
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user