int main() {
typedef struct {
char prijmeni[50];
char jmeno[50];
char narozen[50];
int absence;
char trida[10];
char pohlavi[5];
}STRUKTURA;
char mujString[BUFFER];
int radek = 0;
int pozice;
int index;
char * pch;
int vetsiAbsence[50];
for (int s = 0;s < 50;s++)
vetsiAbsence[s] = 0;
int nejvetsi = 0;
STRUKTURA struktura[100];
FILE * soubor;
soubor = fopen(SOUBOR, "rt");
if (soubor == NULL)
{
printf("Soubor %s se nepodarilo otevrit\n", SOUBOR);
return -1;
}
while (fgets(mujString, BUFFER, soubor) != NULL)
{
if (radek > 0) {
pozice = 0;
pch = strtok(mujString, ODDELOVAC);
while (pch != NULL)
{
switch (pozice) {
case 0:
strcpy(struktura[radek - 1].prijmeni, pch);
break;
case 1:
strcpy(struktura[radek - 1].jmeno, pch);
break;
case 2:
strcpy(struktura[radek - 1].narozen, pch);
break;
case 3:
struktura[radek - 1].absence = atoi(pch);
break;
case 4:
strcpy(struktura[radek - 1].trida, pch);
break;
case 5:
strcpy(struktura[radek - 1].pohlavi, pch);
break;
}
pch = strtok(NULL, ODDELOVAC);
pozice++;
}
}
radek++;
}
radek--;
if (fclose(soubor) == EOF)
printf("Soubor %s nebyl uzavren", SOUBOR);
FILE * vystup;
vystup = fopen(VYSTUP, "wt");
if (soubor == NULL)
{
printf("Soubor %s se nepodarilo otevrit\n", SOUBOR);
return -1;
}
int pole[50];
for (int i = 0;i < radek;i++)
pole[i] = struktura[i].absence;
fprintf(vystup,"Prijmeni jmeno narozen absence trida pohlavi rodne Cislo");
printf(" Prijmeni jmeno narozen absence trida pohlavi rodne Cislo\n");
int k = 0;
int s = 0;
int absence = 0;
int sestupne[30];
while (k == 0) {
for (int i = 0;i < radek;i++) {
if (pole[i] > nejvetsi) {
nejvetsi = pole[i];
index = i;
}
}
vetsiAbsence[s] = nejvetsi;
nejvetsi = 0;
pole[index] = 0;
s++;
if (s == radek)
k = 2;
}
int cislo = 1;
for (int i = 0;i < radek;i++){
for (int y = 0;y < radek;y++)
if (struktura[y].absence == vetsiAbsence[i]) {
if (struktura[y].absence == 15) {
if (cislo == 1) {
printf("%10s", struktura[y].prijmeni);
printf("%10s", struktura[y].jmeno);
printf("%10s", struktura[y].narozen);
printf("%10d", vetsiAbsence[i]);
printf("%10s", struktura[y].trida);
printf("%10s", struktura[y].pohlavi);
printf("%10d\n", rodneCislo(struktura[y].narozen, struktura[y].pohlavi));
cislo = y;
}
}
else {
printf("%10s", struktura[y].prijmeni);
printf("%10s", struktura[y].jmeno);
printf("%10s", struktura[y].narozen);
printf("%10d", vetsiAbsence[i]);
printf("%10s", struktura[y].trida);
printf("%10s", struktura[y].pohlavi);
printf("%10d\n", rodneCislo(struktura[y].narozen,struktura[y].pohlavi));
}
}
absence += struktura[i].absence;
}
printf("\nCelkova absence je %d\n", absence);
for(int p=0;p<radek;p++)
if(struktura[p].absence==vetsiAbsence[0])
printf("Nejvetsi absence je %d a ma ji %s %s", vetsiAbsence[0],struktura[p].prijmeni,struktura[p].jmeno);