ecatanzani Inviato 17 Gennaio 2010 Segnala Condividi Inviato 17 Gennaio 2010 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 Altre opzioni di condivisione...
iTia Inviato 17 Gennaio 2010 Segnala Condividi Inviato 17 Gennaio 2010 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 Altre opzioni di condivisione...
ecatanzani Inviato 18 Gennaio 2010 Autore Segnala Condividi Inviato 18 Gennaio 2010 Potresti dirmi il perchè, non ho capito molto bene. Grazie cmq per la risposta E Catanzani Link al commento Condividi su altri siti Altre opzioni di condivisione...
stevemb Inviato 20 Gennaio 2010 Segnala Condividi Inviato 20 Gennaio 2010 non sono l'unico ad avere probleimi con i vettori in C insomma Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.