Esercizio matrice linguaggio C

maddiii
Buongiorno a tutti! :)
Ho un problema con un esercizio. Ho una matrice di interi di dimensione DIMYxDIMX e devo trovare tutti i punti diversi da 0 che sono circondati a NORD, a SUD, a EST e a OVEST da almeno un numero maggiore.

Sapreste dirmi perchè è sbagliato risolverlo in questo modo e come dovrei correggerlo?
 for(i=1;i<DIMY-1;i++){
        for(j=1;j<DIMX-1;j++){
                if(m[i][j]!=0){
            if(m[i][j]<m[i-1][j] && m[i][j]<m[i+1][j] && m[i][j]<m[i][j-1] && m[i][j]<m[i][j+1])
                printf("%d %d\n",i,i);
        }
      }
    }


Grazie!

Risposte
apatriarca
Come vanno gestiti gli elementi sul "bordo"? Per gli elementi all'interno della matrice va abbastanza bene, ma certamente
printf("%d %d\n",i,i);

dovrebbe essere
printf("%d %d\n",i,j);


EDIT: Avevo letto male la condizione. Parla di almeno un elemento maggiore e quindi dovresti usare dei || e non &&.

maddiii
Mi è partita una i al posto di una j :/
Ma comunque dice di determinare "le coordinate (x, y) di tutti i punti protetti da almeno un settore più alto a Nord, uno
a Sud, uno a Est, ed uno a Ovest", quindi non dovrebbe essere giusto &&?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.