• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Determinare un codice segreto

pe.pp.e

Utente Medio
Autore del topic
10 Aprile 2012
101
0
Miglior risposta
0
Salve a tutti.Dovrei scrivere un programma che simuli un sistema per determinare un codice segreto. Il codice segreto è definito dal programmatore ed è formato da 5 lettere dell’alfabeto.In maniera casuale poi bisogna simulare dei codici fino a che non trova quello esatto. Visualizzare il numero di prove effettuate.Io in pratica ho scritto il codice ma purtroppo nonfunziona in modo corretto.Ringrazio quindi chiunque mi darà una mano!!!!

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Riferimento: Determinare un codice segreto

non lo so....non mi genera niente....ora non so a cosa è dovuto....
 
Riferimento: Determinare un codice segreto

non lo so....non mi genera niente....ora non so a cosa è dovuto....


Dovresti imparare a fare un po' di debugging.

Comunque, comincia a controllare il codice per la generazione dell'alfabeto perché è sbagliato e non è quello che ti avevo consigliato.
 
Riferimento: Determinare un codice segreto

ok,ora controllo e faccio un paio di prove....poi ti faccio sapere
--------------- AGGIUNTA AL POST ---------------
ho trovato il primo errore riguardante il codice della generazione dell'alfabeto e l'ho corretto così :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Nonostante tutto non vedo nessun miglioramento...infatti ora quando avvio un debug del programma,non viene visualizzato niente....la schermata risulta tutta nera!!!! :emoji_confused:
 
Ultima modifica:
Riferimento: Determinare un codice segreto

Devi inizializzare l'array cod_gen per impostare il terminatore altrimenti la strcmp fallirà sempre

char cod_gen[5] = {0};

Elimina quel ciclo con le printf perché rallenta eccessivamente il programma.

Aggiusta anche il vettore per l'alfabeto.

In pratica questo è il codice che ti suggerisco

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Riferimento: Determinare un codice segreto

ok grazie ora funziona alla perfezione...volevo sapere solo una cosa....come mai se non inizializzo gli array la strcmp fallisce????...questo non mi è molto chiaro...e a me interessa capire il c non copiare il codice...quindi se puoi spiegarmelo meglio te ne sarei grato!!!!
 
Ultima modifica:
Riferimento: Determinare un codice segreto

Te l'ho scritto tante volte anche in altre discussioni ...

Tutte le funzioni di gestione della stringa in C (compresa la strcmp) funzionano cercando il terminatore posto alla fine della stringa.
Se il terminatore non c'è, la funzione non lavora correttamente.

Quando inizializzi la stringa, viene aggiunto il terminatore in questione.
 
Riferimento: Determinare un codice segreto

Quando inizializzi la stringa, viene aggiunto il terminatore in questione.

E' appunto questo che non sapevo,cioè che quando inizializzo la stringa il terminatore viene aggiunto automaticamente...ora però mi viene spontanea una domanda....ma se inizializzo una stringa non perdo un posto???...cioè se la stringa è per esempio di size 5 quindi ad esempio char esempio [5]; inizializzandola come char esempio [5]={0}; la stringa non diminuisce di un valore???...scusa per le innumerevoli domande,ma penso che siano di importanza vitale per capire le stringhe in c...cmq ti ringrazio per tutto l'aiuto che mi stai dando!!!!
 
Riferimento: Determinare un codice segreto

Non diminuisce nulla. Tutte le stringhe devono prevedere il terminatore. Infatti tu scrivi

"ciao"

e occupi 4 caratteri + 1 per il terminatore, quindi 5
 
Riferimento: Determinare un codice segreto

capito....grazie ancora....ora è tutto risolto!!!!