Advertisement
Guest User

objasnjenje

a guest
Jun 25th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.20 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. #include<string.h>
  5.  
  6.  
  7. //STRUKTURA KAKO IZGLEDA PIVA
  8. typedef struct{
  9.     char ime[50+1];
  10.     double litara;
  11.     double cijena_boce;
  12. }Pivo;
  13.  
  14. int main(){
  15.    
  16.     //INPUT FILE
  17.     FILE* in=NULL;
  18.     in=fopen("pivo.in","r");
  19.  
  20.     //OUTPUT FILE
  21.     FILE*out=NULL;
  22.     out=fopen("pivo.out","w");
  23.  
  24.     //NAPRAVIT POLJE STRUKTURA TJ KAO NIZ SAMO STRUKTURA
  25.     Pivo piva[100];
  26.     int i=0;
  27.     int cnt=0;
  28.     int index=0;
  29.  
  30.     //OVO JE NAJBITNIJE TO JE UNOS
  31.     //POSTO SI NAPRAVIO DA STRUKTURA MA 3 DJELA CITAJ U SVAKU STRUKTURU TA TRI DJELA
  32.     /*OVA WHILE PETJA ZNACI DOK GOD IMA ZAPISA ZA CITANJE JER SVAKI ZAPIS IMA 3 DJELA,DA SE CITA IZ DATOTEKE,
  33.       TOJEST DOK GOD POSTOJE ZAPISI CITAJ IZ NJE*/
  34.     //%[^:] ZNACI U piva[i].ime CITAJ SVE ZNAKOVE DO ZNAKA : A NJEGA NE UCITAVA
  35.     /*POSTO GA NE UCITAVA %*[: ] ZNACI PORESKOCI SVE ZNAKOVE : I " "(SPACEBAREOVE) DA DODJEMO DO IDUCEG DJELA ZAPISA,
  36.       %*ZNACI PRESKOCI ZNAKOVE KOJI SE NALAZE U [],A ZVJEZDICA OZNACAVA PRESKAKANJE*/
  37.     /*SADA KADA SMO PRESKOCILI SVE SPACEOVE i : DOSLI SMO DO BROJA KOJEG CITAMO U %lf I IZA NJEGA STAVLJAMO L
  38.       DA GA NE PROCITA U STRUKTURU I TAKO CE GA AUTOMACKI PRESKOCIT,MOGLI SMO STAVIT I %*c STO OZNACAVA DA SE PRESKOCI
  39.       IDUCI ZNAK->%*c JE OZNAKA ZA PRESKAKANJE ZNAKA*/
  40.       //SADA OPET PRESKACEMO SPACEBAR,A MOGLI SMO STAVIT I %*c DOLAZIMO DO UCITAVANJA NOVOG BROJA %lf
  41.       //SADA STAVIMO %lfkn DA NE UCITA kn i AUTOMACKI TO PRESKOCI AKO IZA POSTOJI NEKI ZAPIS
  42.       /*ZADNJI %*c JE ZA PRESKOK \n DA NE BUDE RANDOM ENTER NA KRAJU ZAPISA,
  43.        PA ISPIS NECE BIT KAKO TRIBA NEGO CE IMAT NEKI RANDOM PRIJELOM TEKSTA*/
  44.      
  45.     while(fscanf(in,"%[^:]%*[: ]%lfL%*[ ]%lfkn%*c",piva[i].ime,&piva[i].litara,&piva[i].cijena_boce)==3){
  46.         i++;
  47.         cnt++;
  48.     }
  49.  
  50.     //OSTATAK ZADATKA GLUPOST
  51.     double min=piva[0].cijena_boce/piva[0].litara;
  52.  
  53.     for(i=1;i<cnt;i++){
  54.         if((piva[i].cijena_boce/piva[i].litara)<min){
  55.             min=piva[i].cijena_boce/piva[i].litara;
  56.             index=i;
  57.         }
  58.     }
  59.  
  60.     fprintf(out,"Najisplativije je %s: %.2lf kn/L",piva[index].ime,min);
  61.  
  62.     fclose(in);
  63.     fclose(out);
  64.  
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement