Pozdrav svima, ima li neko voljan da mi ispravi grešku oko zadatka? Neće da uđe u poslednja dva while...
Zadatak glasi ovako:
http://prntscr.com/7cq67k
Kod:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct pac
{
int idnt;
char ime[30];
char prezime[30];
} Tpac;
typedef struct elem
{
Tpac osoba;
struct elem *sledeci;
} Telem;
typedef struct inter
{
int idnt2;
char dat[10];
char zub[4];
int cena;
} Tinter;
typedef struct elemm
{
Tinter opas;
struct elemm *sledec;
} Telemm;
int main()
{
int ajdi, br=0, max=0, a;
char zub[4];
Telem *glava=NULL, *novi;
Tpac osoba;
Telemm *gl=NULL, *nv, *pom;
Tinter opas;
FILE *fp, *dat;
printf("\nUnesi trazeni zub: ");
gets(zub);
fp=fopen("pacijenti.txt","r");
dat=fopen("intervencije.txt","r");
while(fscanf(fp,"%d%s%s",&osoba.idnt, osoba.ime, osoba.prezime)!=EOF)
{
novi=(Telem*)malloc(sizeof(Telem));
novi->osoba=osoba;
novi->sledeci=NULL;
if(glava==NULL) glava=novi;
else
{
novi->sledeci=glava;
glava=novi;
}
}
printf("\n");
novi=glava;
while(novi!=NULL)
{
printf("\nIme=%s",novi->osoba.ime);
printf("\nPrezime=%s",novi->osoba.prezime);
printf("\nID=%d", novi->osoba.idnt);
printf("\n\n");
novi=novi->sledeci;
}
printf("\n\n\n");
while(fscanf(dat,"%d%s%s%d",&opas.idnt2, opas.dat, opas.zub, &opas.cena)!=EOF)
{
nv=(Telemm*)malloc(sizeof(Telemm));
nv->opas=opas;
nv->sledec=NULL;
if(gl==NULL) gl=nv;
else
{
nv->sledec=gl;
gl=nv;
}
printf("K"); //proverava jel ulazi u ciklus, treba da ispise 9, jer toliko ima napisanih redova,
}
//Za ispis elemenata [79-92]
nv=gl;
while(nv!=NULL)
{
printf("\nZub=%s",nv->opas.zub);
nv=nv->sledec;
}
nv=gl;
while(nv!=NULL)
{
if(strcmp(nv->opas.zub,zub)==0)
{
ajdi=nv->opas.idnt2;
pom=gl;
while(pom!=NULL)
{
if(strcmp(pom->opas.idnt2,ajdi)==0) br++; //broji koliko je zuba sa istim idn
pom=pom->sledec;
}
if(br>max) max=br, a=ajdi; //pamti ako je broj maksimalan i idn pacijenta
} else br=0;
nv=nv->sledec;
printf("\n%d",max,a); //proverava jel ulazi u ciklus
}
/*
novi=glava;
while(novi!=NULL)
{
if(strcmp(novi->osoba.idnt,a)==0)
{
printf("\n\nSa najvise operacija na unesenom zubu je \n%s %s", novi->osoba.ime, novi->osoba.prezime);
break;
}
novi=novi->sledeci;
printf("\n\n\nSSS\n\n\n"); //proverava jel ulazi u ciklus
}
*/
fclose(fp);
fclose(dat);
return 0;
}