obtener el numero que menos se repite en un arreglo

Iniciado por enterrador10, 18 Noviembre 2016, 19:11 PM

0 Miembros y 1 Visitante están viendo este tema.

enterrador10

Estimados, ayuda por favor, tengo este programa que me imprimer el numero que mas se repite, pero quiero obtener el que menos se repite, agradecido de los comentarios y ayudas, saludos

#include<stdio.h>
#include <stdlib.h>
#include <conio.h>

int main() {
int comparador, i, j, largo, mayor, mayorfrec;
mayorfrec=0;
mayor=0;
printf("cantidad de elemtos: ");

scanf("%i",&largo);


int a[largo], frec[largo];

for (i=0;i<largo;i++) { //INGRESA LOS VALORES DEL VECTOR POR TECLADO
printf("a[%i]: ",i);
scanf("%i",&a[i]);

frec[i]=0;
}

for (i=0;i<largo;i++) { //SE COMPARA CADA VALOR CO LOS DEMAS...PARA GUARDAR LA FRECUENCIA DE CADA UNO
comparador = a[i];
for (j=0;j<largo;j++) {
if (a[j]==comparador) {
frec[i]=frec[i]+1;
}
}
comparador = -1; //ES IMPORTANTE LIMPIAR EL COMPARADOR DESPUES DE CADA CICLO
}

for (i=0;i<largo;i++) { //SE COMPARAN LAS FRECENCIAS GUARDANDO SIEMPRE LA MAYOR DE ELLAS
if (frec[i]<mayor) {
mayorfrec=frec[i];
mayor=a[i];
}
else if (mayor!=a[i])
}
printf("\n El numero menos repetido: %i, repite %i veces", mayor,mayorfrec);

return 0;
}



Mod: Los códigos deben ir en etiquetas GeSHi

valarauko

Podrias hacer un vector auxiliar con todos los numeros y con un contador dentro despues buscas el menor desde ahi.

ivancea96

Tienes:
Código (cpp) [Seleccionar]
if (frec[i]<mayor)
Sin embargo, mayor la inicializas a 0. Inicializarla a 0 sirve para buscar el más repetido. Si quieres buscar el menos repetido, prueba inicializando mayor a 'largo' (que es el valor máximo que podría tener)