anch'io cerco di postarti una soluzione applicabile con piccole matrici (usa le strutture non so se le hai studiate):
codice:#include <stdio.h> #include <stdlib.h> #define Y 3 #define X 4 struct contatore { int valore; int presenze; }; int main() { int matrice[Y][X]={3, 6, 2, 6, 5, 2, 2, 4, 7, 3, 5, 1}; struct contatore[Y*X]; int limite=0, migliore=0, i, j, k; /*Qui puoi mettere una funzione che visualizzi la matrice*/ for(i=0; i<Y; i++) { for(j=0; j<X; j++) { for(k=0; k<=limite; k++) { if(k==limite) { contatore[limite].valore=matrice[i][j]; contatore[limite].presenze=1; limite++; break; } if(contatore[k].valore==matrice[i][j]) { contatore[k].presenze++; break; } } } } /* Questa funzione ha uno svantaggio: nel caso di valori con le stesse presenze se ne visualizza solo uno, ma la si può migliorare */ for(i=0; i<limite; i++); { if(contatore[migliore].valore<contatore[i].valore) { migliore=i; } } printf("Il numero con il maggio numero di presenze e': %d\n", contatore[migliore].valore); system("PAUSE"); return 0; }




Rispondi quotando