Untitled
unknown
plain_text
24 days ago
1.6 kB
2
Indexable
Never
#include<stdio.h> #include<stdlib.h> #define DIM 50 typedef struct libro{ char titolo[DIM+1]; char autore[DIM+1]; int prezzo; }libro_t; typedef struct libreria{ libro_t lib[100]; int num_libri; }libreria_t; libro_t* prezzo_minore(libreria_t library[], int p, int dim_library, int *count){ *count=0; int i, j; for(i=0; i<dim_library; i++){ for(j=0; j<library[i].num_libri; j++){ if(library[i].lib[j].prezzo<p){ *count++; } } } if(*count==0){ return NULL; } libro_t *libri_filtrati=(libro_t*)malloc(*count*sizeof(libro_t)); if(libri_filtrati!=NULL){ int indice=0; for(i=0; i<dim_library; i++){ for(j=0; j<library[i].num_libri; j++){ if(library[i].lib[j].prezzo<p){ libri_filtrati[indice]=library[i].lib[j]; indice++; } } }return libri_filtrati; }else{ return NULL; } } int main() { libreria_t librerie[2] = { { .lib = { {1, "Il libro degli esempi 1", "Autore A", 25}, {2, "Il libro degli esempi 2", "Autore B", 15}, }, .num_libri = 2 }, { .lib = { {3, "Il libro degli esempi 3", "Autore C", 30}, {4, "Il libro degli esempi 4", "Autore D", 20}, }, .num_libri = 2 } }; int count; libro_t* array_lib=prezzo_minore(librerie, 25, 2, &count); if(array_lib!=NULL){ int i; for(i=0; i<count; i++){ printf("%s",array_lib[i].titolo); } free(array_lib); } return 0; }
Leave a Comment