PDA

Visualizza la versione completa : Fondere 2 elenchi :(


corallo
03-01-2012, 19:13
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. :dh:

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.



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 :confused:

alka
03-01-2012, 23:00
Originariamente inviato da corallo
Ragazzi ho l'esame tra qualche giorno e sto uscendo pazzo! Opero in c++

Hai gi aperto questa discussione (http://forum.html.it/forum/showthread.php?s=&threadid=1490440) 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 (http://forum.html.it/forum/showthread.php?s=&threadid=973887) e che lo rispettassi.

Loading