PROBLEMA esercizio in c++

Pubblicità
non svolgiamo compiti per casa, non utile a nessuno e per altro, vietato dal regolamento.
E' un esercizio carino, ogni ricerca va fatta con ciclo for, la piu complessa quella in diagonale che puoi lasciare per ultima. Manda domande mirate al singolo problema.
 
Ehi, ma non t'arrabbiare, e' la prassi, qui invitiamo tutti a provare da soli.

Di base devi effettuare due cicli annidati, ad esempio, per il caso di ricerca orizzontale da destra a sinistra

Nota, codice non testato, buttao giu cosi in velocita', puo contenere errori.

Codice:
int r, c;

for (r = 0; r < NUM_RIGHE; r++) {
    for (c = 0; c < NUM_COLONNE; c++) {
        if (strcmp(parola &riga[c]) == 0) {
            /* trovata */
        }
    }
}

o in verticale

Codice:
int p, c, r, len = strlen(parola);

for (c = 0; c < NUM_COLONNE; c++) {
    p = 0;
    for (r = 0; r < NUM_RIGHE; r++) {
        if (parola[p] != matrice[r][c]) {
            p = 0;
            continue; /* avanza colonna */
        }
        /* lettera trovata */
        p++;
        if (p == len) {
            parola trovata
        }
    }
}

Inizierei a far funzionare questi due, per ultimo quello diagonale piu complesso.
 
Beh, cominciamo dall’inizio perché la tua matrice non è inizializzata.
Prendi questo codice:
C:
int righe=0;
    int colonne=0;
    cout<<"quante colonne vuoi?" << endl;
    int rc=0;
    int cc=0;
    char mat[righe][colonne];
    for(rc=0; cc<righe; rc++){
        for(cc=0;cc<colonna; cc++){
            mat[rc][cc]=
Dichiari due variabile (righe e colonne) che inizializzi a zero, ma poi non le leggi da tastiera e quindi rimangono zero, per cui dichiari una matrice nulla.
I due cicli innestati dovrebbero iniziare la matrice con lettere a caso (tra le maiuscole) usando la funzione genRandom (che però non chiami).
Gli indici usati per i cicli creano confusione, facilissimo scriverne uno invece dell’altro e infatti fai quel errore nel primo ciclo dove compari ‘righe’ con l’indice cc invece che rc (scrissi una discussione proprio a riguardo da dare nomi significativi alle variabili).

Il mio suggerimento è di andare a piccoli passi (come si dovrebbe sempre fare nella programmazione) scrivere pochissime righe di codice alla volta e provarle subito prima di proseguire per essere sicuri facciano il loro compito. Inizia con il generare la matrice e poi stamparla, poi andiamo al passo successivo.
 
Aggiungo che potresti calcolarti la lunghezza della parola da trovare e se questa lunghezza supera il numero di colonne/righe/diagolanli. inutile proseguire il check successivo con il prossimo indice.
 
Pubblicità

Ci sono discussioni simili a riguardo, dai un'occhiata!

Pubblicità

Discussioni Simili

Indietro
Top