Oppure

Loading
24/07/08 19:39
lorenzo
non ho capito quello che vuoi dire....:-|
aaa
24/07/08 19:42
lorenzo
cavolata, ho capito:asd:

per questo ti avevo consigliato di usare un ciclo, comunque lo stavo provano prima e non funziona. prova ad allegare il file con il codice completo, così provo a guardarlo un attimo...
aaa
24/07/08 20:31
lorenzo
Funziona!

Ho preso come esempio il primo che avevi postato e sono riuscito a farlo funzionare.

Allora, per prima cosa vedi di usare un ciclo invece che la loadlist.

Secondo, mi sono fatto una funzione che trasforma int *num2 in int val.
In pratica metto in una sola variabile tutto quello a cui punta num2.
Mettila al posto della loadlist e aggiungi questo nel ciclo for:

printf("--->%d--->%d--->%d--->%d\n" , res[3], res[2], res[1], res[0]);

Serve per vedere passo passo il conto.

Allora, la funzione che trasforma *num in num te la fai da sola.
Es:
1*10 = 10
10*10 = 100
Quindi se hai un vettore con 2 2 2
cioè 222 devi moltiplicare sempre per 10 dopo aver sommato la cifra.
Provaci e fammi sapere
:k:
aaa
24/07/08 20:46
gantonio
@Lorenzo ... guarda che con il codice scritto in quel modo, ci sono enormi problemi di memory leak ...

Il codice della moltiplicazione infatti, non tiene affatto in considerazione le allocazioni di memoria fatte dalle numerose chiamate della add ...

Senza considerare l'estrema inefficienza di un codice che potrebbe eseguire miliardi di iterazioni e addizioni al posto di "moltiplicare" con l'algoritmo corretto (quello delle elementari ...)

Infine, se utilizzi un loop con un intero, non potrai gestire numeri oltre i 2 miliardi e rotti, cosi' che gia' con due numeri da 10 cifre quella funzione non potra' mai lavorare ...

Lo "spirito" dell'esercizio non era quello di usare la add gia' scritta ... la add NON doveva essere usata e doveva servire solo come "esempio" per la mult ...
aaa
24/07/08 20:56
lorenzo
questo non mi è stato detto. La richiesta era di far funzionare il codice, cosa che io ho fatto.

Se poi l'esercizio chiedeva qualcosa d'altro questo non è un problema mio se permetti. Dovrebbe essere lei a risolverselo. Magari avendo il mio come esempio potrebbe farcela anche da sola.

Quanto alla memoria, quando ho messo giù la funzione non ho nemmeno guardato la add, ho dato per scontato che si divesse usare quella(mi era comunque sembrato strano dato che il programma usa effettivamente quantità enormi di memoria per una semplice moltiplicazione).
Il codice però era quello e non conoscendo nemmeno il testo dell'esercizio ma solo il risultato...
aaa
25/07/08 7:46
Misciu87
quindi devo modificare add con mult facendo passo passo una moltiplicazione in colonna?però ho scritto al mio prof e lui non mi ha detto nulla che è sbagliato a solo detto
Postato originariamente da Misciu87:
in loadlist allocate una lista di interi di lunghezza
uguale alla lunghezza di list. Quando la funzione termina
il puntatore res che prima puntava ad una lista lunga n+m ora punta
ad una lista lunga quanto list.
aaa