Vai al contenuto

Ordinamento Array C++


ecatanzani

Messaggi raccomandati

Salve, sono nuovo del forum e colgo l'occasione per ringraziarvi della vostra attenzione.

Desideravo porvi una domanda un pò insolita, un vostro parere riguardo un frammento di codice in c++ che riguarda l'ordinamento di un array (vettore) in ordine crescente.

//Questo è il codice...

#include <iostream>

#include <stdio.h>

#include <stdlib.h>

int main () {

int const n=5;

int vet[n],appoggio;

cout<<"\n\nProgramma per l'ordinamento di un vettore";

cout<<"\n\nriempimento del vettore:\n";

for(int a=0; a<n; a++)

{ cout<<"\nInserisci il "<<a+1<<"° valore su "<<n<<"\n";

cin>>vet[a];

}

cout<<"\n\nVisualizzazione del vettore"<<"\n";

for(int b=0; b<n; b++)

cout<<"\n"<<b+1<<" "<<vet<<"\n";

cout<<"\n\nOrdinamento del vettore in ordine crescente";

for(int i=0; i<n; i++)

{

for(int j=0; j<n; j++)

{

if(vet>vet[j])

{

appoggio=vet[j];

vet[j]=vet;

vet=appoggio;

}

}

}

cout<<"\n\nVisualizzazione del vettore ordinato\n";

for(int e=0; e<n; e++)

cout<<"\n"<<e+1<<" "<<vet[e]<<"\n";

cout<<"\n\n";

system("pause");

return 0;

}

// Fine del codice

Il problema è che questo codice dovrebbe ordinare il vettore in modo crescente, mentre lo fa in modo DECRESCENTE.

Qualcuno ma il perchè?? Mi potreste essere d'aiuto??

Vi ringrazio per l'attenzione.

Distinti saluti.

E Catanzani

Link al commento
Condividi su altri siti

questo e' il codice che usi tu

for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
if(vet[i]>vet[j])
{
appoggio=vet[j];
vet[j]=vet[i];
vet[i]=appoggio;
}
}
}

l'errore sta nelle condizioni del ciclo, il primo deve finire non quando e' minore di n ma minore di (n-1)mentre il secondo deve partire da i+1, cosi':

for(int i=0; i<(n-1); i++){
  for(int j=i+1; j<n; j++){
     if(vet[i]>vet[j]){
        appoggio=vet[j];
        vet[j]=vet[i];
        vet[i]=appoggio;
      }
  }
}

MacBook Pro 13''

iPhone 3G 4.0.2 (8A400)

Il mio Twitter

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...