Ordinamenti (Sul Sistema Operativo Linux)

di il
1 risposte

Ordinamenti (Sul Sistema Operativo Linux)

Slave a tutti, devo fare un proramma in C++ che, usando l'ordinamento exchange sort e una funzione di scambio, debba restituire una certa stringa (inserita dall'utente) ordinata in ordine crescente. Io sto programmando in linux, e mi da un errore nella funzione exchangeSort, cosa vuol dire? Grazie!

/*Questo programma utilizza l'ordinamento exchange sort per riordinare una stringa in ordine crescente. La stringa è inserita dall'utente. */

#include <iostream>
#include <cstdlib>
using namespace std;

void scambio (int &x, int &y)
{

int z;

z=x;
x=y;
y=z;

}


void exchangeSort (int vet[], int N)
{
int i, j, N;

for (i=0; i<N-1; i++) 
for (j=i+1; j<N; j++)
if (vet[i]>vet[j])
scambio(vet[i], vet[j]);

}


int main ()
{

int N, vet[];


cout<<" Inserisci il vettore "<<endl;
cin>> vet;

cout<<" Il vettore riordinato e' "<<exchangeSort(vet, N)<<endl;
cout<<endl;

return 0;
}
Gli errori che mi dà alla compilazione sono i seguenti:
1) declaration of ‘int N’ shadows a parameter
2) storage size of ‘vet’ isn’t known

Una mano? Grazie!

1 Risposte

  • Re: Ordinamenti (Sul Sistema Operativo Linux)

    1) declaration of ‘int N’ shadows a parameter
    Usi N come parametro passato alla funzione

    void exchangeSort (int vet[], int N)

    e come variabile locale

    int i, j, N;

    Ovviamente devi usare solamente il parametro ...
    2) storage size of ‘vet’ isn’t known
    Il vettore vet[] nel main non ha nessuna dimensione.
    Devi indicare il numero di elementi ad esempio vet[6];
    L'inserimento va fatto per ogni elemento del vettore con una for usando vet
Devi accedere o registrarti per scrivere nel forum
1 risposte