Untitled
unknown
plain_text
a year ago
1.6 kB
8
Indexable
#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;
}Editor is loading...
Leave a Comment