Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    44
    ecco il codice aggiornato ma continua a non funzionare
    codice:
    void Inserisci(archivio *x, tipobaseList a){
         unsigned int v, c;
         printf("Codice volo? ");
         scanf("%u", &v);
         FLUSH;
         if(x->posti_disponibili>0){
                             printf("1-prenota ");
                             printf("2-acquista ");
                             scanf("%u", &c);
                             FLUSH;
                             if(c==1) InserimentoPrenotazione(&(x->posti_prenotati), a);
                             if(c==2) InserimentoAcquisto(&(x->posti_acquistati), a);
                             x->posti_disponibili--;
         }else (printf("\nNumero posti disponibili esaurito"));
    }
    
    main (){
         unsigned int n,v, scelta;
         tipobaseList persona;
         
          do{
            printf("\n/**********ARCHIVIO VOLI***************/");
            printf("\n1-Alloca Vettore");
            printf("\n2-Numero posti disponibili");
            printf("\n3-Inserimento");
            printf("\n4-Conferma acquisto");
            printf("\n5-Esci");
            printf("\nscelta--------------->");
            scanf("%u", &scelta);
            FLUSH;
            switch(scelta){
                       case 1: do{
                                  printf("\nInserisci il numero di elementi del vettore: ");
                                  scanf("%u",&n);
                                  FLUSH;
                               }while(n<2); 
                               
                               AllocaVettore(&archivio_voli, n);
                               break;
                       case 2: InizializzaVettore(archivio_voli, n);
                               break;
                       case 3: LeggiElemento(&persona);
                               Inserisci(&archivio_voli[v], persona);
                               break;
                       //case 4: 
                        
                                   
                           
            }
                           
         }while(scelta<4);
         
    }

  2. #12
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Originariamente inviato da livrea
    ecco il codice aggiornato ma continua a non funzionare
    Cioè? Cosa succede quando lo esegui?

  3. #13
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    44
    Originariamente inviato da Who am I
    Cioè? Cosa succede quando lo esegui?
    il problema adesso rimane la funzione Inserisci dopo che inserisco la scelta tra acquista e prenota il programma si blocca è smette di funzionare

  4. #14
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    In Inserisci chiami InserimentoPrenotazione e InserimentoAcquisto, che a loro volta chiamano Locate.E il problema sta nella Locate:

    codice:
    position Locate(list l, tipobaseList x)
    {
        if(!EmptyList(l)){
            if(!Confronta(l->info,x)) return(LISTAVUOTA);
            while(l->next!=LISTAVUOTA){
                if(!Confronta(l->next->info,x)) return(l);
                l=l->next;
            } return(l);
        }
        return 0;
    }
    Se la lista è vuota non ritorni alcun valore e il programma si blocca.Ritorna NULL.

  5. #15
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Inoltre ti faccio notare che nella Inserisci continui a non considerare (come nell'altra discussione) che x è un vettore e che la variabile v è l'indice dell'elemento che devi considerare (altrimenti a che servirebbe v in quella funzione? Te lo sei chiesta?)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #16
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    44
    Originariamente inviato da oregon
    Inoltre ti faccio notare che nella Inserisci continui a non considerare (come nell'altra discussione) che x è un vettore e che la variabile v è l'indice dell'elemento che devi considerare (altrimenti a che servirebbe v in quella funzione? Te lo sei chiesta?)
    ho provato a fare così ma si blocca sempre

    codice:
    void Inserisci(archivio *x, tipobaseList a){
         unsigned int v, c;
         printf("Codice volo? ");
         scanf("%u", &x[v]);
         FLUSH;
         if(x->posti_disponibili>0){
                             printf("1-prenota ");
                             printf("2-acquista ");
                             scanf("%u", &c);
                             FLUSH;
                             if(c==1) InserimentoPrenotazione(&(x->posti_prenotati), a);
                             if(c==2) InserimentoAcquisto(&(x->posti_acquistati), a);
                             x->posti_disponibili--;
         }else if(x->posti_disponibili=0)(printf("\nNumero posti disponibili esaurito"));
    }
    
    main (){
         unsigned int n,v, scelta;
         tipobaseList persona;
         
          do{
            printf("\n/**********ARCHIVIO VOLI***************/");
            printf("\n1-Alloca Vettore");
            printf("\n2-Numero posti disponibili");
            printf("\n3-Inserimento");
            printf("\n4-Conferma acquisto");
            printf("\n5-Esci");
            printf("\nscelta--------------->");
            scanf("%u", &scelta);
            FLUSH;
            switch(scelta){
                       case 1: do{
                                  printf("\nInserisci il numero di elementi del vettore: ");
                                  scanf("%u",&n);
                                  FLUSH;
                               }while(n<2); 
                               AllocaVettore(&archivio_voli, n);
                               break;
                       case 2: InizializzaVettore(archivio_voli, n);
                               break;
                       case 3: LeggiElemento(&persona);
                               Inserisci(&archivio_voli[v], persona);
                               break;
                       //case 4: 
                        
                                   
                           
            }
                           
         }while(scelta<4);
         
    }

  7. #17
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma scusa, scrivi codice a caso?

    La scanf di prima era corretta. Il valore va in v ed è un numero che rappresenta il codice del volo.

    Il vettore è x e come per la funzione InizializzaVettore (in cui usavi i) devi usare v come indice.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #18
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    44
    Originariamente inviato da oregon
    Ma scusa, scrivi codice a caso?

    La scanf di prima era corretta. Il valore va in v ed è un numero che rappresenta il codice del volo.

    Il vettore è x e come per la funzione InizializzaVettore (in cui usavi i) devi usare v come indice.
    potresti farmelo vedere, perchè così non lo capisco

  9. #19
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Riprendi la funzione InizializzaVettore e osserva la gestione degli indici per il vettore x
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #20
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    44
    Originariamente inviato da oregon
    Riprendi la funzione InizializzaVettore e osserva la gestione degli indici per il vettore x
    qui l'indice ogni volta viene incrementato di 1 fino ad arrivare ad n
    codice:
    void InizializzaVettore(archivio *x, unsigned int n){
         unsigned int i=0, s=0;
         for(i=0; i<n; i++){
            printf("Numero posti disponibili del volo <%u> ? ", i);
            scanf("%u", &s);
            FLUSH;
            (x+1)->posti_disponibili=s;
            MakeNullList(&((x+1)->posti_acquistati));
            MakeNullList(&((x+1)->posti_prenotati));
         }
    }
    ora seguendo il ragionamento della funzione precedente, qui siccome gli do io l'indice v ed essendo x il mio vettore che punta al primo elemento dovrebbe essere così:
    codice:
    void Inserisci(archivio *x, tipobaseList a){
         unsigned int v, c;
         printf("Codice volo? ");
         scanf("%u", &v);
         FLUSH;
        
         if(((x+v)->posti_disponibili)>0){
                             printf("1-prenota ");
                             printf("2-acquista ");
                             scanf("%u", &c);
                             FLUSH;
                             if(c==1) InserimentoPrenotazione((&((x+v)->posti_prenotati)), a);
                             if(c==2) InserimentoAcquisto((&((x+v)->posti_acquistati)), a);
                             ((x+v)->posti_disponibili)--;
         }else if(((x+v)->posti_disponibili)=0)(printf("\nNumero posti disponibili esaurito"));
    }
    ma si blocca subito dopo aver fatto la scelta tra prenota/acquista.

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.