Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <math.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct pica{
- int cena;
- char grad[20];
- char drzava[20];
- char pizza[20];
- struct pica *sledeci;
- };
- typedef struct glava{
- struct pica *phead;
- };
- void inici(struct glava *g)
- {
- g->phead=NULL;
- }
- void dodajNaPocetak(struct glava *g, struct pica *novaPica)
- {
- if(g==NULL){
- g->phead=novaPica;
- }
- else
- {
- novaPica->sledeci=g->phead;
- g->phead=novaPica;
- }
- }
- struct pica *noviCvor( int cena, char grad[], char drzava[], char pizza[])
- {
- struct pica *n=malloc(sizeof(struct pica));
- if(n==NULL)
- {
- printf("NEmate dovoljno Rama");
- exit(EXIT_FAILURE);
- }
- n->cena=cena;
- strcpy(n->grad,grad);
- strcpy(n->drzava,drzava);
- strcpy(n->pizza,pizza);
- n->sledeci=NULL;
- return n;
- }
- FILE *otvori(char *naziv, char *mode)
- {
- FILE *k=fopen(naziv,mode);
- if(k==NULL)
- {
- printf("Niste uneli dobro dadoteku");
- exit(1);
- }
- return k;
- }
- void dodajNaKraj(struct glava *g, struct pica *novaPica)
- {
- if(g->phead==NULL){
- g->phead = novaPica;
- }
- else{
- struct pica* tekuci = g->phead;
- while(tekuci->sledeci != NULL) tekuci = tekuci->sledeci;
- tekuci->sledeci = novaPica;
- }
- }
- FILE *cita(struct glava *g, char *naziv, char *mode)
- {
- FILE *k=otvori(naziv,mode);
- int cena;
- char grad[20];
- char drzava[20];
- char pizza[20];
- struct pica *novii;
- while(fscanf(k,"%d %s %s %s\n",&cena, grad, drzava, pizza)!=EOF)
- {
- novii=noviCvor(cena,grad,drzava,pizza);
- dodajNaKraj(g,novii);
- }
- fclose(k);
- }
- int suma(char drzava[], char pizza[], struct glava *g)
- {
- struct pica *p1;
- int sum=0;
- for(p1=g->phead; p1!=NULL; p1=p1->sledeci)
- {
- if(strcmp(p1->drzava,drzava) == 0 && strcmp(p1->pizza,pizza) == 0)
- {
- sum+=p1->cena;
- printf("suma je %d \n",sum);
- }
- }
- return sum;
- }
- FILE *ispisuje(char *naziv, char *mode, struct glava *g, int x)
- {
- FILE *k=otvori(naziv, mode);
- struct pica *p1;
- for(p1=g->phead;p1!=NULL; p1=p1->sledeci)
- {
- fprintf(k, "%d %s %s %s \n",p1->cena, p1->grad, p1->drzava, p1->pizza);
- }
- fprintf(k,"%d\n",x);
- return k;
- }
- void unisti(struct glava *desc){
- struct pica *trenutni;
- while(desc->phead != NULL){
- trenutni= desc->phead;
- desc->phead = trenutni->sledeci;
- trenutni->sledeci=NULL;
- free(trenutni);}
- }
- int main(int brArg, char *arg[])
- {
- struct glava g;
- inici(&g);
- char *prvi=arg[1];
- char *drugi=arg[2];
- char *treci=arg[3];
- char *cetvrti=arg[4];
- cita(&g,treci,"r");
- int x=suma(prvi,drugi,&g);
- printf("%d",x);
- FILE *out=ispisuje(cetvrti,"w",&g,x);
- //frpintf(out,"%d",x);
- unisti(&g);
- fclose(out);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement