|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2010
Messaggi: 9
|
[C] Copiare array in un altro
Salve a tutti, complimenti per il forum...è colpa vostra se ora sto cercando di capire il c...
Comunque, sto scrivendo una cosetta, che per chi la sa fare presumo sia insignificante, ma che a me sta costando ore ed ore di assurda fatica...sel punto evidenziato di rosso vorrei che gli elementi dell'array b[] venissero copiati in un altro array (copia[]) uno ad uno...il prob è che quando poi stampo, mi viene sempre 0...ora vi posto il codice, non è importante che vi spieghi cosa fa tutto il coso quindi ho tagliato un pezzo di prog. (quello iniziale)... scanf("%d", &riga);// Leggo indice di partenza printf("%d\n", riga); b[0] = riga; //il primo elemento dell'array e del ciclo è quello che gli ho passato io printf("b[0] = %d\n", riga);// il primo elemento passato da me viene stampato for (y = 1; y < max; y++){ for (colonna=0; colonna < max; colonna++) { //printf ("colonna = %d\n", colonna); //printf ("a[%d][%d]\n", riga,colonna); if (riga != colonna){ if (prox_riga < 0 && primoavvio == 0){ min = a[riga][colonna]; prox_riga = colonna; primoavvio++; //riga = prox_riga; //printf ("Primo avvio: prox_riga = %d e min = %d\n", prox_riga, min); } else if (prox_riga < 0 && primoavvio == 1){ if (confronto(b,y,colonna) == 0){ min = a[riga][colonna]; prox_riga = colonna; // printf ("prox_riga negativo: prox_riga = %d e min = %d\n", prox_riga, min); } } else if (a[riga][colonna] < min){ if (confronto(b,y,colonna) == 0){ min = a[riga][colonna]; prox_riga = colonna; } //riga = prox_riga; //printf ("prox_riga = %d e min = %d\n", prox_riga, min); } } } //printf ("Il minimo e' %d e la colonna e' %d\n", min, prox_riga++); b[y] = prox_riga; riga = prox_riga; printf ("b[%d] = %d\n", y, b[y]); prox_riga = -1; } for ( y=1; y < max; y++ ){ //printf("\nVettore dei valori : %d",a[b[y-1]][b[y]]); costoatt = costoatt+a[b[y-1]][b[y]]; } printf("\nIl costo attuale e' %d", costoatt); if (costoatt < costomin) { for (k=0;k<max;k++) { b[k] = copia [k]; printf ("%d e %d", k , copia[k]);} } return 0; } Vi ringrazio tantissimo, vi prego di spiegarmi passo passo: sono solo due giorni che programmo :P Ultima modifica di lorenzd : 05-05-2010 alle 17:57. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Tradate
Messaggi: 396
|
a copia assegni i valori di b se non erro, quindi e'
for (k=0;k<max;k++) { copia[k]=b[k]; printf ("%d e %d", k , copia[k]); } mi sa che le hai invertite.. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jun 2008
Messaggi: 551
|
Quote:
Codice PHP:
copio l'elemento di indice k dell'array copia nell'elemento di indice k dell'array b ti sarà chiaro ora che non può essere corretto visto che tu vuoi fare esattamente il processo inverso e quindi Codice PHP:
__________________
Se non hai ancora deciso per il tuo futuro Don'T panic!!! segui le tue passioni, ti porteranno lontano. |
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: May 2010
Messaggi: 9
|
Ammazza che tonno...grazie mille ragazzi!!!mi stavo arrovellando il cervello...
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2008
Messaggi: 551
|
tranquillo,programmi solo da due giorni, ritieniti soddisfatto.
i veri arrovellamenti
__________________
Se non hai ancora deciso per il tuo futuro Don'T panic!!! segui le tue passioni, ti porteranno lontano. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:40.




















