Funzione scambio

di il
2 risposte

Funzione scambio

Salve 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.

2 Risposte

  • Re: Funzione scambio

    Il 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]);
    }
    
  • Re: Funzione scambio

    Grazie mille... Sempre perfetto e efficiente
Devi accedere o registrarti per scrivere nel forum
2 risposte