Visualizzazione dei risultati da 1 a 4 su 4

Visualizzazione discussione

  1. #4
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    87
    Grazie alla fine ho scoperto che aveva bisogno di due asterischi,trattandosi di un vettore di puntatori si aspettava due puntatori in entrata probabilmente....ora il problema è diverso,il programma procede liscio finchè non assegno a uno di quei puntatori un certo elemento,io vi posto quello che sto facendo,trattenente le risate,ma il professore s'è fissato con i maiali XD

    codice:
    #define N 100
    
    
    typedef struct{
            int giorno;
            int mese;
            int anno;
            }Data;
    typedef struct{
            char nome[20];
            float peso;
            Data annonascita;
            float popolarita;
            }Maialino;
    typedef struct{
            Maialino pigs[N];
            int num_maialini;
            }Allevamento;
     
            
    /*->CONFRONTO INTERI<-*/        
    int confronta(int a,int b)
    {
        printf("ciao c");
         if(a>b)
         {
                printf("bau");
                return 1;
         }
         if(a<b)
         {
                return -1;
         }
         if(a==b)
         {
                 return 0;
         }
    }
    /*->ORDINA DATE<-*/void ordina_data(int num_maialini,Maialino *ord_data[N],Allevamento &citta)     
    {                                                     //ATTENZIONE già di per se ogni elemento di quel vettore che mandiamo è un puntatore,inoltre vogliamo mandarglielo per indirizzo
       int i,j,result;                                          //servono quindi due asterischi
          
       for(i=0;i<num_maialini-1;i++)
       {
            for(j=0;j=num_maialini-1;j++)
            {
                                         result=confronta(citta.pigs[i].annonascita.anno,citta.pigs[j+1].annonascita.anno);
                                         switch(result){
                                                        case 1:
                                                               *ord_data[i]=citta.pigs[j+1];
                                                               break;
                                                               
                                                        case -1:
                                                               printf("ciao e");
                                                               *ord_data[i]=citta.pigs[i];
                                                               printf("ciao f");
                                                               break;
                                                        case 0:
                                                               result=confronta(citta.pigs[i].annonascita.mese,citta.pigs[j+1].annonascita.mese);//nel caso l'anno di nascita sia uguale passa al mese
                                                               break;
                                                               
                                                               switch(result){
                                                                              case 1:
                                                                                      *ord_data[i]=citta.pigs[j+1];    
                                                                                      break;    
                                                                              case -1:
                                                                                      *ord_data[i]=citta.pigs[i];
                                                                                      break;
                                                                              case 0:
                                                                                      result=confronta(citta.pigs[i].annonascita.giorno,citta.pigs[j+1].annonascita.giorno);
                                                                                      break;
                                                                                      
                                                                                      switch(result){
                                                                                                     case 1:
                                                                                                             *ord_data[i]=citta.pigs[j+1];
                                                                                                             break;                                                                                                       
                                                                                                     case -1:
                                                                                                             *ord_data[i]=citta.pigs[i];
                                                                                                             break;
                                                                                                     case 0:
                                                                                                             break;
                                                                                                    }
                                                                            }
                                                        }            
                                                                  
                                         
            }                       
       }                                             
    }
    il problema è nella funzione ordina data tra "ciao e" e "ciao f" a quanto pare,visto che stampa solo "ciao e",viene eseguito è,cioè se premo F9 non dice nulla e va,ma quando inserisco tutti i dati arriva a stampare "ciao e" e viene fuori il messaggio di windows "il programma ha smesso di funzionare"

    non riesco a caricarla meglio di così,nell'anteprima mi mostra il messaggio in un certo modo ma quando invio mi cambia tutto e viene uno schifo nel punto degli switch,riuscite a capire?sono 3 switch concatenati
    Ultima modifica di Satiro88; 18-11-2013 a 11:52

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 © 2025 vBulletin Solutions, Inc. All rights reserved.