Oppure

Loading
28/04/20 20:03
Ultimo
Si avrebbe dovuto scrivere:

if (num_dati_ord == 0) { // il vettore è vuoto, facile
vett[0] = nuovo_dato;
return;

:pat:
If ok Then GOTO Avanza else GOTO Inizia

28/04/20 20:08
Iprogrammer
Ho provato a modificare il codice seguendo i vostri consigli ma non riesco a raggiungere la soluzione.
Il codice non è stato scritto da me e devo sistemarlo cercando di mantenere la struttura così com'è ora.

Qualcuno riuscirebbe a riscriverlo correttamente e postarlo?

So che potrebbe essere visto come uno sfruttamento ma è da giorni che ci provo senza ottenere risultati mi piacerebbe vedere una soluzione.
Ultima modifica effettuata da Iprogrammer 28/04/20 20:18
aaa
28/04/20 20:17
Ultimo
Il doppio asterisco invece a che serve? (nessuno dice doppio puntatore) mi sfugge il significato.

Qui una spiegazione:

forum.html.it/forum/showthread/…


If ok Then GOTO Avanza else GOTO Inizia

28/04/20 20:50
Ultimo
Postato originariamente da Iprogrammer:

Ho provato a modificare il codice seguendo i vostri consigli ma non riesco a raggiungere la soluzione.
Il codice non è stato scritto da me e devo sistemarlo cercando di mantenere la struttura così com'è ora.

Qualcuno riuscirebbe a riscriverlo correttamente e postarlo?

So che potrebbe essere visto come uno sfruttamento ma è da giorni che ci provo senza ottenere risultati mi piacerebbe vedere una soluzione.


Ti abbiamo trovato degli errori, prova a correggerli.

If ok Then GOTO Avanza else GOTO Inizia

29/04/20 7:18
nessuno
Nessuno riscrive il programma per te. Correggi gli errori indicati e posta nuovamente il codice corretto indicando cosa non va.
Ultima modifica effettuata da nessuno 29/04/20 7:19
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
29/04/20 8:51
Goblin
Postato originariamente da nessuno:

Nessuno riscrive il programma per te. Correggi gli errori indicati e posta nuovamente il codice corretto indicando cosa non va.


Diciamo che oltre un ottimo informatico, in passato saresti stato anche il discepolo preferito della Sibilla. :D:D:D

G.
Ibis redibis non morieris in bello
29/04/20 11:02
Carlo
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 30/04/20 8:33
in programmazione tutto è permesso
29/04/20 12:03
Carlo
Risolto anche l'ultimo bug, ora il codice funziona perfettamente, non lo posto, sentiamo Iprogrammer :k:
Ultima modifica effettuata da Carlo 29/04/20 15:21
in programmazione tutto è permesso