Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct meso {
- double cena;
- char grad[2 + 1];
- char meso[30 + 1];
- struct meso *sledeci;
- }Meso;
- FILE *safeopen(FILE *fajl, char *mdoe, int error_code);
- Meso *ucitaj(FILE *fajl, Meso *m);
- void pisi(Meso *m);
- Meso *jeftino(Meso *m, char *vrsta);
- void brisi(Meso *m);
- int main(int argc, char *args[])
- {
- Meso *glava = NULL, *naj;
- FILE *ulaz = safeopen(args[1],"r",1);
- glava = ucitaj(ulaz,glava);
- fclose(ulaz);
- pisi(glava);
- char *vrsta = args[2];
- naj = jeftino(glava, vrsta);
- printf("\nNajpovoljnije je: %s\n",vrsta);
- brisi(glava);
- //glava = NULL;
- pisi(glava);
- char *slovo = args[3];
- char k[] = "klasa_";
- char ekst[] = ".txt";
- strcat(k,slovo);
- strcat(k,ekst);
- printf("%s\n",k);
- FILE *klasa = safeopen(k,"w",33);
- fclose(klasa);
- return 0;
- }
- FILE *safeopen(FILE *fajl, char *mode, int error_code) {
- FILE *fp = fopen(fajl,mode);
- if(fp == NULL) {
- printf("Greska kod ucitavanja '%s'",fajl);
- exit(error_code);
- }
- return fp;
- }
- /////////////////////////////////////////////////////////////////////
- Meso *ucitaj(FILE *fajl, Meso *m) {
- double tcena;
- char tgrad[2 + 1], tmeso[30 + 1];
- while(fscanf(fajl,"%lf %s %s",&tcena, tgrad, tmeso) == 3) {
- Meso *novi = malloc(sizeof(Meso));
- novi->cena = tcena;
- strcpy(novi->grad, tgrad);
- strcpy(novi->meso, tmeso);
- novi->sledeci = m;
- m = novi;
- }
- return m;
- }
- void pisi(Meso *m) {
- /*if(m == NULL) {
- printf("Lista je prazna...\n");
- return;
- }*/
- while(m) {
- printf("%6.2lf %s %s\n",m->cena, m->grad, m->meso);
- m = m->sledeci;
- }
- }
- Meso *jeftino(Meso *m, char *vrsta) {
- Meso *n = NULL;
- if(m == NULL) {
- printf("Lista je prazna...\n");
- return;
- }
- while(m) {
- if(strcmp(m->meso, vrsta) == 0) {
- if(n == NULL)
- n = m;
- else if(m->cena < n->cena)
- n = m;
- }
- m = m->sledeci;
- }
- return n;
- }
- void brisi(Meso *m) {
- Meso *stari;
- while(m) {
- stari = m;
- m = m->sledeci;
- free(stari);
- }
- printf("Lista je obrisana...\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement