Hice una chorradita parecida para Estadística. Adaptándolo un poco:
#include <stdio.h>
#include <stdlib.h>
typedef struct numero
{
int numero;
int frecuencia;
}NUMERO;
int main(int argc, char **argv)
{
int total_num, total_sin_repetir, conta, conta2, auxiliar;
FILE *puntero_fichero;
NUMERO *vector;
puntero_fichero=fopen("fichero.txt", "r");
if(puntero_fichero!=NULL)
{
total_num=0;
while(!feof(puntero_fichero))
{
fscanf(puntero_fichero, "%d");
total_num++;
}
vector=(NUMERO)malloc(total_numsizeof(NUMERO));
rewind(puntero_fichero);
conta=0;
total_sin_repetir=0;
while(conta<total_num)
{
fscanf(puntero_fichero, "%d", &auxiliar);
conta2=0;
while(conta2<total_sin_repetir && vector[conta2].numero!=auxiliar)
conta2++;
if(conta2<total_sin_repetir)
{
vector[conta2].frecuencia++;
}
else
{
total_sin_repetir++;
vector[conta2].numero=auxiliar;
vector[conta2].frecuencia=1;
}
conta++;
}
fclose(puntero_fichero);
conta=0;
while(conta<total_sin_repetir)
{
printf("\n\nNumero leido: %d", vector[conta].numero);
printf("\nRepetido: %d veces", vector[conta].frecuencia);
conta++;
}
free(vector);
}
else
printf("\n\nERROR: no se encuentra fichero.txt\n");
return 0;
}
[/i]
Sólo sirve si entre cada número hay ESPACIO(s).
Salu2