typedef struct libro { char titolo[30]; char autore[30]; int numeropagine; float prezzo; char editore[30]; } t_libro;
void inserimento(t_libro elenco[], const int n) { int i=0; for(i=0; i<n; i++) { printf("\ninserire titolo libro "); //scanf("%s", elenco[i].titolo); gets(elenco[i].titolo); printf("\ninserire autore libro "); //scanf("%s", elenco[i].autore); gets(elenco[i].autore); printf("\ninserire editore libro "); //scanf("%s", elenco[i].editore); gets(elenco[i].editore); printf("\ninserire numero pagine libro "); scanf("%d", &elenco[i].numeropagine); printf("\ninserire prezzo libro "); scanf("%f", &elenco[i].prezzo); } }
t_libro *ricerca(t_libro elenco[], const int n, char *titolo) { t_libro *ret = NULL; if (titolo != NULL) { if (strlen(titolo) > 0) { int i=0; int trovato = 0; while(i<n && trovato==0) { if (strcmp(elenco[i].titolo, titolo) == 0) { trovato = 1; ret = &elenco[i]; } i++; } } } return ret; }
void stampalibro(t_libro *lib) { if (lib != NULL) { printf("\n dati libro trovato \n"); printf("titolo: %s\n", lib->titolo); printf("autore: %s\n", lib->autore); printf("editore: %s\n", lib->editore); printf("numero pagine: %d\n", lib->numeropagine); printf("prezzo: %f\n", lib->prezzo); } }
void ordinamentoTitolo(t_libro elenco[], const int n) { int i=0; int j=0; for(i=0; i<n-1; i++) { for(j=i+1; j<n; j++) { if (strcmp(elenco[i].titolo, elenco[j].titolo) > 0) { t_libro app = elenco[i]; elenco[i] = elenco[j]; elenco[j] = app; } } } }
void ordinamentoAutore(t_libro elenco[], const int n) { int i=0; int j=0; for(i=0; i<n-1; i++) { for(j=i+1; j<n; j++) { if (strcmp(elenco[i].autore, elenco[j].autore) > 0) { t_libro app = elenco[i]; elenco[i] = elenco[j]; elenco[j] = app; } } } }
t_libro *libromaxpagine(t_libro elenco[], const int n) { t_libro *ret = NULL; int i=0; int max = -1; for(i=0; i<n; i++) { if (elenco[i].numeropagine > max) { max = elenco[i].numeropagine; ret = &elenco[i]; } } return ret; }
t_libro *librominprezzo(t_libro elenco[], const int n) { t_libro *ret = NULL; int i=0; int min = INT_MAX; for(i=0; i<n; i++) { if (elenco[i].prezzo < min) { min = elenco[i].prezzo; ret = &elenco[i]; } } return ret; }