#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct option {
char *sedili;
char *volante;
}optionals;
typedef struct car {
char *interni;
char *esterni;
char *cerchi;
optionals opt;
}arg;
void inizializza(arg *macchina, int nmacchine);
void inseriscidati(arg *macchina, int nmacchine);
void stampadati(arg *macchina, int nmacchine);
int main(void){
int macchine;
arg * giulietta;
printf("Inserisci il numero di Macchina da configurare: ");
scanf("%d", &macchine);
giulietta =(arg *) malloc(sizeof(arg)*macchine);
inizializza(giulietta, macchine);
inseriscidati(giulietta, macchine);
stampadati(giulietta, macchine);
free(giulietta);
return 0;
}
//Funzione per inizializzare la struttura con valori vuoti
void inizializza(arg *macchina, int nmacchine){
int i=0;
for (i=0;i<nmacchine;i++){
(macchina+i)->interni = '\0';
(macchina+i)->esterni = '\0';
(macchina+i)->cerchi = '\0';
(macchina+i)->opt.sedili = '\0';
(macchina+i)->opt.volante = '\0';
}
}
//Funzione per memorizzare i dati nella struttura
void inseriscidati(arg *macchina, int nmacchine){
int i=0;
char *temp;
for(i=0;i<nmacchine;i++){
printf("\nMacchina %d:", i+1);
temp = (char *) malloc(sizeof(char));
printf("\nInserisci il tipo di interno: ");
scanf("%s",temp);
(macchina+i)->interni = temp;
printf("\n%s", (macchina+i)->interni);
printf("\nInserisci il colore degli esterni: ");
scanf("%s",temp);
(macchina+i)->esterni = temp;
printf("\nInserisci il tipo di cherchi: ");
scanf("%s",temp);
(macchina+i)->cerchi = temp;
printf("\nOPTIONALS:");
printf("\nInserisci il colore dei sedili: ");
scanf("%s",temp);
(macchina+i)->opt.sedili = temp;
printf("\nInserisci la tipologia di volante: ");
scanf("%s",temp);
(macchina+i)->opt.volante = temp;
free(temp);
}
}
//Funzione che stampa a video i dati della struttura
void stampadati(arg *macchina, int nmacchine){
int i=0;
printf("\n\nCONFIGURAZIONI DISPONIBILI:");
for(i=0;i<nmacchine;i++){
printf("\n\nGiulietta %d", i+1);
printf("\nInterni: %s", (macchina+i)->interni);
printf("\nEsterni: %s", (macchina+i)->esterni);
printf("\nCerchi: %s", (macchina+i)->cerchi);
printf("\nOPTIONALS");
printf("\nInterni: %s", (macchina+i)->opt.sedili);
printf("\nInterni: %s", (macchina+i)->opt.volante);
}
}