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; }

Rispondi quotando