Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Fondere 2 elenchi :(

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    6

    Fondere 2 elenchi :(

    Ragazzi ho l'esame tra qualche giorno e sto uscendo pazzo! Opero in c++
    Il problema è che non riesco a fondere 2 elenchi che sono stati gia ordinati alfabeticamente mediante bubble sort quindi non vi passo tutto il programma ma solo la parte di sottoprogramma per cui sto impazzendo.

    Devo inserire gli elementi del secondo elenco nel primo e l'output mi risulta essere sempre sbagliato. Vi chiedo di correggere il mio o di coniarne uno nuovo per "studiarmelo".

    In pratica nel secondo elenco ci sono aziende che dovranno essere passate nel primo elenco mantenendo l'ordinamento alfabetico esatto, oppure se nel secondo elenco ci sono aziende con stesso nome e stessa tipologia aggiornare quelli che sono i campi numerici(numero dipendenti-capitale). Vi ringrazio col cuore.

    codice:
    void fondi_elenco(elenco azienda1[],elenco azienda2[],int &n1,int &n2){
        
        bool trovato1,trovato2;
        trovato1=false;
        trovato2=false;
       
        
        int t=0;
        int i;
      
       
        for(int j=0;j<n2;j++){
            
             for(i=0;i<n1;i++){
                
                 
                if((strcmp(azienda1[i].nome_azienda,azienda2[j].nome_azienda))==0 &&
                        (strcmp(azienda1[i].tipologia,azienda2[j].tipologia))==0){
                    
                    trovato1=true;
          }
                else if(strcmp(azienda1[i].nome_azienda,azienda2[j].nome_azienda)>0){
                 
                    trovato2=true;
                }
                      }       
                
            
               if(trovato1){
           azienda1[i].cap_sociale=azienda1[i].cap_sociale+azienda2[j].cap_sociale;
           azienda1[i].num_dipendenti=azienda1[i].num_dipendenti+azienda2[j].num_dipendenti;
            }
            else if(!trovato1 && trovato2){
                
                 for(int t=n1-1;t>=i;t--){
                        azienda1[t+1]=azienda1[t];
                    }
                    azienda1[i]=azienda2[j];
                    n1++;
            }
            else if(!trovato1 && !trovato2){
             
             azienda1[n1]=azienda2[j];
             n1++;
         }
            }
        
    }
    }
    Questa e' una strada alternativa consigliatami dal prof in relazione alla mia idea di risolvere il problema....aiutatemi

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296

    Moderazione

    Originariamente inviato da corallo
    Ragazzi ho l'esame tra qualche giorno e sto uscendo pazzo! Opero in c++
    Hai già aperto questa discussione sullo stesso problema, e continui a non indicare il linguaggio nel titolo, dopo che ti è stato fatto notare più volte che sarebbe opportuno tu leggessi il Regolamento e che lo rispettassi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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