#include #include #include int main(int argc, char *argv[]) { FILE *muzicari = fopen(argv[1], "r"); int idMuzicara, idMuzicara1, idBenda, idBenda1, idKolege, idKolege1; char ime[50], prezime[50], imeKolege[50], prezimeKolege[50], datum1[20], datum2[20], godina[5]; char najduzeIme[50], najduzePrezime[50], nazivBenda[50], najduziBend[50]; godina[4]='\0'; int godina1, godina2, godina1Kolege, godina2Kolege, period, maxPeriod; char setovanMax = 0; while(fscanf(muzicari, &idMuzicara, ime, prezime) == 3) { // muzicar FILE *muzicari2 = fopen("muzicari.csv", "r"); while(fscanf(muzicari2, &idKolege, imeKolege, prezimeKolege) == 3) { if (idKolege == idMuzicara) continue; period = 0; maxPeriod = -1; FILE *bendovi = fopen("bendovi.csv", "r"); while(fscanf(bendovi, &idBenda, nazivBenda) == 2) { FILE *sastav_benda1 = fopen("sastav_benda.csv", "r"); while(fscanf(sastav_benda1, &idMuzicara1, &idBenda1, datum1, datum2) == 4) { // muzicar i period kad je svirao if (idMuzicara != idMuzicara1 || idBenda != idBenda1) continue; memcpy(godina, datum1, 4); godina1 = atoi(godina); memcpy(godina, datum2, 4); if (strcmp(godina, "NULL") == 0) { godina2 = 2024; } else { godina2 = atoi(godina); } FILE *sastav_benda2 = fopen("sastav_benda.csv", "r"); while(fscanf(sastav_benda2, &idKolege1, &idBenda1, datum1, datum2) == 4) { if (idKolege != idKolege1 || idBenda != idBenda1) continue; memcpy(godina, datum1, 4); godina1Kolege = atoi(godina); memcpy(godina, datum2, 4); if (strcmp(godina, "NULL") == 0) { godina2Kolege = 2024; } else { godina2Kolege = atoi(godina); } int start = godina1 > godina1Kolege ? godina1Kolege : godina1; int kraj = godina2 > godina2Kolege ? godina2Kolege : godina2; if (kraj - start > 0) { period += kraj - start; } } } } if (period > maxPeriod) { maxPeriod = period; strcpy(najduzeIme, imeKolege); strcpy(najduzePrezime, prezimeKolegeKolege); } } printf("%s,%s,%s,%s,%d\n", ime, prezime, imeKolege, prezimeKolege, maxPeriod); } return 0; }