/Anonimizzato8374Utente anonimizzato23 feb 2011, 16:06Salve a tutti. Dovrei implementare una funzione che scambi il primo e l'ultimo elemento di un array. Supponendo che l'array è composto da 3 elementi. ho implementato una funzione int swap(int&a, int & b) { int c; c=a; a=b; b=c; } poi ho implementato una seconda funzione in questo modo // funzione per lo scambio del primo e ultimo elem dell'array void spe(int a[],int n) { int appo=a[0]; int appo1=a[2]; swap(appo,appo1); } nel main ho richiamato le funzioni di lettura dell'array e di stampa. fin qui tutto bene. Successivamente ho richiamato la funzione di scambio nel seguente modo: spe(a1,3); (sopra ho dichiarato vettore e tutto). richiamando successivamente la funzione di stampa, il risultato in uscita è uguale a quello prima dello scambio. Credo che il problema sia nel passaggio di parametri della funzione spe o forse nel fatto che è dichiarata void... ma nn so come correggermi. Grazie anticipatamente a tutti per l'aiuto.
/Anonimizzato7532Utente anonimizzato23 feb 2011, 16:14Il problema sta quà. int appo=a[0]; int appo1=a[2]; tu scambi appo con appo1 ma ciò non viene riflesso nel tuo array. Perche invece non passi direttamente gli elementi dell'array da scambiare? void spe(int a[],int n) { swap(a[0],a[2]); }