per esempio in questo modo, ritorna una sequenza di spostamenti, ad un certo punto si interrompe, ma non con un percorso corretto.
codice:
int percorri(int M[8][8],int r, int c){
somma=somma+M[r][c];
if(somma==250 && r==7 && c==7){
printf("%d", M[r][c]);
printf(" somma %d", somma);
return 1;
}
else if(somma < 250){
if(c<7){
if(percorri(M, r,(c+1))==0){
somma=somma-M[r][c+1];
}else{
printf("\n%d", M[r][c+1]);
printf(" somma %d", somma);
return 1;
}
}
if(r<7){
if(percorri(M,(r+1),c)==0){
somma=somma-M[r+1][c];
}else{
printf("\n%d", M[r+1][c]);
printf(" somma %d", somma);
return 1;
}
}
if(c>0){
if(percorri(M, r,(c-1))==0){
somma=somma-M[r][c-1];
}else{
printf("\n%d", M[r][c-1]);
printf(" somma %d", somma);
return 1;
}
}
if(r>0){
if(percorri(M,(r-1),c)==0){
somma=somma-M[r-1][c];
}else{
printf("\n%d", M[r-1][c]);
printf(" somma %d", somma);
return 1;
}
}
}
else if(somma>250){
somma=somma-M[r][c];
return 0;
}
}
fra l'altro in output la somma è sempre 151