Reverse

di il
6 risposte

Reverse

Salve a tutti devo scrivere una funzione che faccia il reverse degli elementi di un vettore.
Ad esempio se il vettore è 1-2-3-4-5 in output desidero 5-4-3-2-1 io ho fatto nel seguente modo ma evidentemente c'è un problema perchè mi ristampa il vettore iniziale:

void swap(int&a, int&b)
{
int c;
c=a;
a=b;
b=c;
}

void reverse (int v[], int n)
{
int i=0;
int j=(n-1);
while (i>j)
{
swap(v,v[j]);
i++;j--;
}

}
Vi ringrazio anticipatamente dell'aiuto.

6 Risposte

  • Re: Reverse

    C'è qualcuno?
  • Re: Reverse

    Hai un programma completo?
  • Re: Reverse

    Si un secondo e lo posto
  • Re: Reverse

    #include <iostream>

    using namespace std;

    void lettura(int v[], int n)
    {
    for(int i=0;i<=n;i++)
    cin>>v;
    }
    void stampa(int v[], int n)
    {
    for(int i=0;i<=n;i++)
    {
    cout<<endl;
    cout<<v;
    }


    }

    void swap(int&a, int&b)
    {
    int c;
    c=a;
    a=b;
    b=c;
    }
    void reverse (int v[], int n)
    {
    int i=0;
    int j=(n-1);
    while (i>j)
    {
    swap(v,v[j]);
    i++;j--;
    }

    }


    int main()
    {
    cout << "FUNZIONE REVERSE" << endl;
    const int m=4;
    int v1[m];
    cout<<"inserire gli elementi del vettore"<<endl;
    lettura(v1,m);
    cout<<"gli elementi inseriti sono"<<endl;
    stampa(v1,m);
    cout<<endl;
    cout<<"invertiamo gli elementi"<<endl;
    reverse(v1,m);
    cout<<"elementi invertiti"<<endl;
    stampa(v1,m);
    return 0;
    }
  • Re: Reverse

    
    #include <iostream>
    
    using namespace std;
    
    void lettura(int v[], int n)
    {
    	for(int i=0;i<n;i++) //hai 4 elementi perche ne leggi 5 con i <=n ?
    	cin>>v[i];
    }
    
    void stampa(int v[], int n)
    {
    	for(int i=0;i<n;i++)  //idem hai 4 elementi perche ne stampi 5 con i <= n ?
    	{
    		cout<<endl;
    		cout<<v[i];
    	}
    }
    
    void swap(int&a, int&b)
    {
    	int c;
    	c=a;
    	a=b;
    	b=c;
    }
    
    void reverse (int v[], int n)
    {
    	int i=0;
    	int j=(n-1);
    	while (i<j)   //quì i dev'essere minore di j non maggiore
    	{
    		swap(v[i],v[j]);
    		i++;
    		j--;
    	}
    }
    
    
    int main()
    {
    	cout << "FUNZIONE REVERSE" << endl;
    	const int m=4;
    	int v1[m];
    	cout<<"inserire gli elementi del vettore"<<endl;
    	lettura(v1,m);
    	cout<<"gli elementi inseriti sono"<<endl;
    	stampa(v1,m);
    	cout<<endl;
    	cout<<"invertiamo gli elementi"<<endl;
    	reverse(v1,m);
    	cout<<"elementi invertiti"<<endl;
    	stampa(v1,m);
    	return 0;
    }
    
    leggi i commenti.
  • Re: Reverse

    È veroooo errore stupidissimo.. i deve essere < j .. grazie mille e scusa per il disturbo
Devi accedere o registrarti per scrivere nel forum
6 risposte