#include #include void fatal(char *msg) { fputs(msg, stderr); exit(1); } void main() { FILE *knjige, *popis; struct knjiga_t { int sifknjiga, siftema, brstr; char naziv[30+1]; float cijena; } knjiga; int sifra_teme, rbr=0, i; float prosjek=0; if ((knjige=fopen("knjige", "rb"))==NULL) fatal("Input error\n"); if ((popis=fopen("popis", "wt"))==NULL) fatal("Output error\n"); printf("\nUnesi sifru teme "); scanf("%d", &sifra_teme); while (fread(&knjiga, sizeof(knjiga), 1, knjige)==1) if (knjiga.siftema==sifra_teme && knjiga.sifknjiga!=0) { if (!(rbr%50)) { if (rbr) fputs("\f", popis); fprintf(popis, "Popis knjiga tematike %05d\n\n", sifra_teme); fprintf(popis, "%-42s%s", "Rbr. Sifra Naziv knjige", "Br.str. Cijena\n"); for(i=0;i<=59;++i) fprintf(popis, "-"); } fprintf(popis, "\n%3d. %05d %-30s %5d %7.2f", ++rbr, knjiga.sifknjiga, knjiga.naziv, knjiga.brstr, knjiga.cijena); prosjek+=knjiga.brstr/knjiga.cijena; } if (rbr) { prosjek/=rbr; printf("Prosjecna cijena ... je %7.2f\n", prosjek); } }