Ricorsione matrice

di il
2 risposte

Ricorsione matrice

Salve, non riesco a capire dov'è l'errore in questa funzione che richiama se stessa?? Grazie in anticipo
Il compilatore mi segnala questo: [Error] ld returned 1 exit status

void esplosione(char mat[][N_C], int p1, int p2)
{
int i,j;

for (i=0; i<N_R; i++) {
if (mat[p2] == '.')
mat[p2] == 'o';
else if (mat[p2] == 'o')
mat[p2] == 'O';
else espolsione(mat, i, p2);
}
for (j=0; j<N_C; j++) {
if (mat[p1][j] == '.')
mat[p1][j] == 'o';
else if (mat[p1][j] == 'o')
mat[p1][j] == 'O';
else espolsione(mat, p1, j);
}
}

2 Risposte

  • Re: Ricorsione matrice

    Hai visto che non si capisce nulla del codice? Usa i tag CODE per il codice, vedi il regolamento.

    Inoltre inserisci il main che richiama la funzione e spiega a cosa serve questa funzione ricorsiva.
  • Re: Ricorsione matrice

    int main() {
    	
    	char matrice[N_R][N_C];
    	int p1, p2;
    	int i, j;
    	
    	riempimeto_matrice(matrice);
    	stampa_matrice(matrice);
    	
    	while (matrice != '\0') {
    		printf("Inserire riga:");
    		scanf("%d", &p1);
    		printf("Inserire colonna:");
    		scanf("%d", &p2);
    		
    		if (matrice[p1][p2] == 'O')
    			esplosione(matrice, p1, p2);
    			else if (matrice[p1][p2] == '.') 
    				matrice[p1][p2] = 'o';
    				else if (matrice[p1][p2] == 'o') 
    					matrice[p1][p2] = 'O';
    		
    	stampa_matrice(matrice);
    	}
    	
    	getchar();
    }
    //Esplosione
    void esplosione(char mat[][N_C], int p1, int p2)
    {
    	int i,j;
    	
    	for (i=0; i<N_R; i++) {
    		if (mat[i][p2] == '.')
    			mat[i][p2] == 'o';
    		else if (mat[i][p2] == 'o')
    				mat[i][p2] == 'O';
    		else espolsione(mat, i, p2);         //Qui c'è l'errore ma non capisco quale sia??
    	}
    		for (j=0; j<N_C; j++) {
    			if (mat[p1][j] == '.')
    				mat[p1][j] == 'o';
    			else if (mat[p1][j] == 'o')
    					mat[p1][j] == 'O';
    			else espolsione(mat, p1, j);
    		}
    }
Devi accedere o registrarti per scrivere nel forum
2 risposte