Untitled

mail@pastecode.io avatar
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