24/08/09 19:16
Premoli
il codice non mi da nessun errore in fase di compilazione però in esecuzione se ad esempio
carico i vettori così
v1={1,1,1,2}
v2={1,1,4,5,5}
come output mi da
v3={1,1,1,2,4,5}
invece avrebbe dovuto darmi
v3={1,1,1,2,4,5,5}
aaa
24/08/09 22:09
gigisoft
Postato originariamente da oretovalley:
Allora ecco il codice che ti serviva:
[...]
Salve,
non ho avuto il tempo di verificarne il funzionamento, ma il codice mi sembra un pò caotico, io agirei cosi':
// v1, v2 = vettori da unire
// v3 = unione dei vettori v1 e v2
// n1, n2 = dimensione dei vettori v1 e v2
// i1, i2, i3 = indici per scorrere i vettori v1, v2 e v3
[...]
i1 = i2 = i3 = 0;
while ((i1 <= n1) && (i2 <= n2)) {
if (v1[i1] < v2[i2]) {
v3[i3] = v1[i1];
i1++;
}
if (v1[i1] > v2[i2]) {
v3[i3] = v1[i2];
i2++;
}
if (v1[i1] = v2[i2]) {
v3[i3] = v1[i1];
i1++;
i2++;
}
i3++;
}
for (; i1 <= n1; i1++, i3++)
v3[i3] = v1[i1];
for (; i2 <= n2; i2++, i3++)
v3[i3] = v1[i2];
[...]
ciao.
Luigi
Ultima modifica effettuata da gigisoft 24/08/09 22:13
aaa
25/08/09 12:05
oretovalley
strano premoli te lo dico xkè ho provato molte configurazioni comprese le tue con il mio ultimo codice postato e tutte risultano esatte, non so dove tu riscontri il problema...
aaa
25/08/09 13:51
gigisoft
Postato originariamente da Premoli:
niente nè il nuovo codice di oretovalley nè quello di gigisoft funzionano e io ormai sto diventando pazzo
e pensare che all' inizio credevo che un esercizio del genere l'avrei finito in 5 minuti
se vi viene in mente qualche altra idea non esitate, se non vi va di scrivere il codice potete anche solo dirmi per grandi linee come fareste, ve ne sarei grato...
Ehm... ora che ho ridato un'occhiata al codice vedo che c'e' effettivamente un errore, nella riga
if (v1[i1] = v2[i2])
va ovviamente va messo "==" al posto di "=", ma il resto e' corretto.
Ciao.
Luigi.
Ultima modifica effettuata da gigisoft 25/08/09 13:53
aaa