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