Ciao a tutti!
Sono nuovo del forum (anche se vi seguo già da un po'!), sto imparando a programmare perchè ho sempre desiderato farlo e perchè ho "Programmazione in C" come corso universitario!
Sto facendo esercizi in preparazione dell'esame, ma sono incappato in un problema che a prima vista mi sembra banale ma che non riesco a risolvere nonostante abbia già speso varie ore per uscire dalla buca in cui mi sono infilato.
Devo ordinare in ordine crescente un array di dimensione N contenente dei valori numerici.
Ho visto già diverse soluzioni, ma quello che mi interessa è capire perchè NON funziona il programma che ho scritto, così da imparare dai miei errori.
Il programma dopo aver ricevuto i dati dall'utente li mette in un vettore, stampa quello che è stato immesso e poi dovrebbe stampare i dati numerici ordinati dal minore al maggiore. Invece mi ristampa ancora il vettore come l'ho immesso, senza nessun ordinamento o scambio!
Vi copio qui sotto il mio programma, ringrazio chiunque riuscirà a darmi una mano. Siete grandissimi e vi stimo moltissimo!! =)
(Modificato per essere più leggibile!)
/*Questo programma analizza una serie di N numeri e li mette in ordine crescente con N definito dal programmatore.*/
#include <stdlib.h>
#include <stdio.h>
#define N 5
int main()
{
printf("Inserisci %d numeri interi, li metterò in ordine crescente!\n", N);
int i;
int v[N];
for ( i = 0 ; i < N ; i++ )
{
scanf("%d", &v[i]);
}
printf("I numeri da te inseriti sono: ");
for ( i = 0 ; i < N ; i++ )
{
printf("%d ", v[i]);
}
printf("\n");
int j;
int w;
for ( i = 0 ; i < N - 1 ; i++ );
{
for ( j = i + 1 ; j < N ; j++ )
{
if ( v[j] < v[i] )
{
w = v[j];
v[j] = v[i];
v[i] = w;
}
}
}
printf("Lo scambio è stato effettuato: ");
for ( i = 0 ; i < N ; i++ )
{
printf("%d ", v[i]);
}
printf("\n");
exit(EXIT_SUCCESS);
}