Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C]Tipi derivati composti tramite struttura

    Volevo scrivere un programma per l’inserimento e visualizzazione di un gruppo di automobili descritte da marca, modello e numero di unità vendute, con il gruppo di automobili inserito dall’utente del programma. Ho dunque scritto un menù che mi permette di scegliere tra visualizzare l'elenco o aggiungere un'auto. Tuttavia ,inserito l'azione di inserimento, il programma termina. Ecco il codice:
    codice:
    #include <stdio.h>
    
    #define DIM 31
    #define MAX 30
    #define MENU 0
    #define INS 1
    #define VIS 2
    #define OUT 100
    
    int indice=0;
    
    struct auto {
      char marca[DIM];
      char modello[DIM];
      int  vend;
    };
    
    struct auto auto[MAX];
    
    int men_auto(void);
    int ins_auto(int);
    void vis_elenco(void); 
    void vis_auto(struct auto *);
    
    int main()
    {
        int scelta = MENU;
        
    while(scelta!=OUT) {
      switch(scelta) {
        case MENU:
          scelta = men_auto();
          if(scelta == MENU)
             scelta = OUT;
          break;
        case INS:
          indice = ins_auto(indice);
          scelta = MENU;
          break;
         case VIS:
          vis_elenco();
          scelta = MENU;
          break;}
    
      system("PAUSE");	
      return 0;
    }
    }
    
    /* menù */
    int men_auto(void)
    {
    int scelta;
    char invio;
    int true = 1;
    while(true){
      printf("\n\n\n\t\t\t SALONE AUTO");
      printf("\n\n\n\t\t\t 1. Immissione auto");
      printf("\n\n\t\t\t 2. Visualizza elenco");
      printf("\n\n\t\t\t 0. Fine");
      printf("\n\n\n\t\t\t\t Scegliere una opzione: ");
      scanf("\n%d", &scelta);
      printf("\n\n\n\n\n\n\n\n\n");
      switch(scelta) {
        case 0: return (scelta);
        case 1: return (scelta);
        case 2: return (scelta);
        default:
          break;
      }
    }
    return 0;
    }
    
    /* Inserisce auto */
    int ins_auto(int pos)
    {
    char invio;
    if(pos>=MAX) {
      printf(" Non si possono inserire altre auto");
      scanf("%c", &invio);
      return(pos);
    }
    
    printf("\n\t\tINSERIMENTO AUTO");
    printf("\n\t\t---------------\n\n");
    printf("Marca: ");
    gets(auto[pos].marca);
    printf("\nModello : ");
    gets(auto[pos].modello);
    printf("\nNumero vendute : ");
    scanf("%d", &auto[pos].vend);
    scanf("%c", &invio);
    pos++;
    return(pos);
    }
    
    /* Visualizza elenco*/
    void vis_auto(struct auto *p)
    {
    printf("\n\n--------------------\n");
    printf("\n\t\tMarca: %s", p->marca);
    printf("\n\t\tModello : %s", p->modello);
    printf("\n\t\tNumero vendute : %d", p->vend);
    printf("\n\n--------------------\n");
    }
    
    /* Visualizza elenco */
    void vis_elenco(void)
    {
    int i; 
    char pausa;
    struct auto *ps = &auto[0];
    for (i=0; i<indice; i++) {
      vis_auto(ps++);
      scanf("%c", &pausa);
    }
    }
    Dov'è l'errore?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Guarda dove hai messo il

    return 0

    nel main


    P.S. Non usare la parola riservata "auto" nel programma
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.