Lo se pero no habia leido bien la pregunta y respondi lo que entendi a pasos largos. Yo crei que estaban preguntando lo que respondi pero luego pense que mi codigo era casi lo que nesecitaba, pero si fue mi error y para enmendarlo te dare al codigo(a partir de la modificacion de eferion) de lo que buscas:
Código C:
Ver original#include <stdbool.h>
#include <stdio.h>
int main()
{
int a[7] = {3, 2, 0, 2, 0, 1, 0};
int r[7], p[7], mar=0, map=-1, mir=1000, mip=-1;
int i, t;
const int* end = a + sizeof(a)/sizeof(int);
for(int* ptr=a; ptr<end; ++ptr)
{
int nrepeated = 0;
for( int* ptr2=a; ptr2<end; ++ptr2)
if((*ptr==*ptr2) && (ptr!=ptr2))
nrepeated++;
t=true;
for(i=0;i<ptr-a;i++)
if(p[i]==*ptr)
t=false;
if(t)
{
r[ptr-a] = nrepeated;
p[ptr-a] = *ptr;
}
}
for(i=0;i<end-a-1;i++)
{
if(mar<r[i])
{
map=p[i];
mar=r[i];
}
if(mir>r[i])
{
mip=p[i];
mir=r[i];
}
}
printf("El numero %i se repite %i veces, se repite mas que los otros\n", map
, mar
); printf("El numero %i se repite %i veces, se repite menos que los otros\n", mip
, mir
); return 0;
}
Disculpenme por mi error.