ciao a tutti come faccio a trovare il massimo il minimo oppure dei valori percentuali compresi tra 0 e 200 ad esempio all interno di una regione? per esempio data una matrie 4x4 contentente i valori:

210 630 22 102
240 500 35 923
0 611 152 883
14 57 64 613



e voglio selezionare la regione compresa tra (x1y1 in alto a sx) e (x2y2 in basso a dx) della matrice 4x4? il dubbio è come lavorare su una sottomatrice. io ho eseguito i 2 doppi cicli for ma quando verifico la statistica mi escono valori sballati di percentuali o di max e min. grazie ancora!

codice:
while (fgets(riga, MAX, f) != NULL) 
 { for(i=0; i<N; i++) 
for(j=0; j<N; j++) {

 if(r<=x2 && r>=x1 && s<=y2 && s>=y1) 
cont=0; { 
for(c=0; c<N-r; c++) 
for(d=0; d<N-s; d++) {
 if(mappa[c][d]>max) max=mappa[c][d]; 
 if(mappa[c][d]<min && mappa[c][d]!=0)
 min=mappa[c][d];
 if(mappa[c][d]==0) mare++; 
//conto “quanto mare c’è”
 if(mappa[c][d]>0 && mappa[c][d]<200) 
pianura++; 
if(mappa[c][d]>=200 && mappa[c][d]<=600) 
collina++; if(mappa[c][d]>600) 
montagna++;
 while (isdigit(mappa[c][d])); cont++;
 //fin quando la riga contiene un carattere incrementa la c. esce quando la riga contiene spazio vuoto.
 c++; }
   }


                }

            }}

nval = (x2-x1+1)*(y2-y1+1); //salvo la variabile nval in modo da non doverla riscrivere per il calcolo delle percentuali.
       printf("Altitudine massima: %d\n", max);
       printf("Altitudine minima: %d\n", min);
       printf("Mare: %.2f%%\n", mare*100/nval); //calcolo di una semplice percentuale
       printf("Pianura: %.2f%%\n", pianura*100/nval);
       printf("Collina: %.2f%%\n", collina*100/nval);
       printf("Montagna: %.2f%%\n", montagna*100/nval);
       return 0;
              }