Visualizzazione dei risultati da 1 a 1 su 1
  1. #1

    errore di segmentazione nel mio codice

    ciao a tutti, ho scritto questo codice dove calcola il numero massimo di combinazioni delle 8 regine, solo che mi da errore di segmentazione.
    Ci vuole una condizione di chiusura della funzione queen o c'è un errore nella funzione verifica?

    Mi potreste dare anche qualche dritta nel rendere il codice + efficiente.

    Questo è il codice
    codice:
    #include <stdio.h>
    
    int board[8][8] = {{0}};
    int verifica(int,int);
    int clear(int);
    int queen(int, int, int);
    
    
    int main() {
    
    
        printf("%d\n", queen(0, 0, 0));
    
    
        return 0;
    }
    
    
    int queen( int riga, int col, int WINS) {
    
    
        if (riga == 0 && col > 7)
         return WINS;
        else {
            for (int i = col; i < 8; i += 1) {
                if(verifica( riga, i)){
                    board[riga][i] = 1;
                    if(riga == 7) {
                        ++WINS;
                         break;
                    }
                    queen(++riga, 0, WINS);
                }
            }
            --riga;
            queen (riga, clear(riga), WINS);
        }
    }
    
    
    int verifica( int X, int Y) {
    
    
        for (int i = 0; i <= X; i += 1) {
            if (board[X - i][Y])
                 return 0;
            if(Y - i >= 0 && board[X - i][Y - i])
                 return 0;
            if(Y + i <= 7 && board[X - i][Y + i])
                 return 0;
        }
        return 1;
    }
    
    
    int clear( int row) {
    
    
        for (int i = 0; i < 8; i += 1) {
            if (board[row][i]) {
                board[row][i] = 0;
                return i + 1;
            }
        }
        return 0;
    }
    Ultima modifica di lostworld; 01-09-2015 a 15:09

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.