Ho dato un'altra occhiata, gli errori sembrano voluti, come se un professore avesse cambiato delle cose ad arte, e alcuni sono palesi, ecco l'elenco.
riga 21, per fare spazio bisogna contare all'indietro e il -1 su lung non ci va, altrimenti il for non viene eseguito:
sbagliata: for (int j = lung - 1; j > posizione; ++j)
corretta: for (int j = lung ; j > posizione; --j)
riga 27, il simbolo = serve per assegnazione, per il confronto ci vuole ==
sbagliata: if (num_dati_ord = 0)
corretta: if (num_dati_ord == 0)
riga 43, come detto da nessuno bisogna passare anche il numero degli elementi
incompleta: void ordina_dati(const int *dati_non_ordinati, int *dati_ordinati)
corretta: void ordina_dati(const int *dati_non_ordinati, int *dati_ordinati, int num_dati)
riga 45, non serve, va eliminata
riga 68, va aggiunto il numero degli elementi
incompleta: ordina_dati(dati_input, dati_ordinati);
corretta: ordina_dati(dati_input, dati_ordinati, num_dati);
Con queste modifiche il codice ordina correttamente le sequenze che hanno in prima posizione il numero maggiore della sequenza.
es. 12 1 9 7 2 4 (ordinata correttamente) risultato 1 2 4 7 9 12
es. 5 1 9 7 2 4 (la sequenza non viene ordinata dopo il valore 5) risultato 1 2 4 5 0 0
EDIT:
nel post delle 9:39 di Giovedì, 30/04/2020, codice completo funzionante
Ultima modifica effettuata da Carlo il 30/04/2020 alle 10:33
in programmazione tutto è permesso |