se non ho capito male il programma deve guardare se ci sono valori che si ripetono del corso della matrice, se è così stampa il contenuto della matrice e le corrispondenze.

codice:
char contatore[MAX+1];
char stampato=0;

int main()
{
  ...
  for(i=0; i<MAXM; i++)
    for(j=0; i<MAXN; j++)
      contatore[a[i][j]]++;
  for(i=0; i<r; i++){
    for (j=0; j<c; j++)
      printf("%3d",a[i][j]);
    printf("\n");
  }
  for(i=0; i<=MAX; i++)
    if(contatore[i]>1)
    {
      printf("Il numero %i comapre %d volte\n", i, contatore[i]);
      stampato=1;
    }
  if(stampato)printf("Nessun valore compare più d'una volta\n");
  getch();
  return 0;
}