Testo:
b) Infine, implementare la funzione C: Automobile* acquistabili(Automobile* parco, int n, int disponibilita, int *m), che,
presi in input un array “parco” di Automobile le cui prime n componenti sono significative, ed un intero disponibilità,
restituisce un nuovo array contenente tutte e sole le automobili contenute in parco, il cui prezzo è minore o uguale di disponibilita,
ed inserisce nella variabile puntata da m il numero di componenti dell’array resituito.
Testo.txt:
Main:
int main(int argc, char** argv){
char* nomefile = "file1.txt";
Automobile parco[10];
int n;
leggi_automobili(nomefile,parco,&n);
print_parco(parco, n);
int m;
Automobile* acq = acquistabili(parco,n,13000,&m);
}
Funzioni:
Automobile* acquistabili(Automobile* parco, int n, int disponibilita, int* m)
{
Automobile *parco_disp;
int i;
*m = 0;
for(i = 0; i < n; i++)
if(parco[i].prezzo < disponibilita)
*m = *m + 1;
parco_disp = (Automobile *) malloc (*m * sizeof(Automobile));
for(i = 0; i < n; i++)
{
if(parco[i].prezzo <= disponibilita)
{
strcpy(parco_disp[i].marca, parco[i].marca);
strcpy(parco_disp[i].modello, parco[i].modello);
parco_disp[i].prezzo = parco[i].prezzo;
}
}
printf("*m: %d", *m);
printf("\n");
for(i = 0; i < *m; i++)
{
printf("marca_disp: %s\n", parco_disp[i].marca);
printf("modello_disp: %s\n", parco_disp[i].modello);
printf("prezzo_disp: %d\n", parco_disp[i].prezzo);
printf("\n");
}
}
Mi stampa:
*m: 5
marca_disp: fiat
modello_disp: panda
prezzo_disp: 9000
marca_disp: lancia
modello_disp: y
prezzo_disp: 12500
marca_disp:
modello_disp:
prezzo_disp: 0
marca_disp: fiat
modello_disp: punto
prezzo_disp: 11000
marca_disp:
modello_disp:
prezzo_disp: 0
Perché alcuni sono vuoti?