Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: enterrador10 en 18 Noviembre 2016, 19:11 PM

Título: obtener el numero que menos se repite en un arreglo
Publicado por: enterrador10 en 18 Noviembre 2016, 19:11 PM
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
Título: Re: obtener el numero que menos se repite en un arreglo
Publicado por: valarauko en 18 Noviembre 2016, 21:47 PM
Podrias hacer un vector auxiliar con todos los numeros y con un contador dentro despues buscas el menor desde ahi.
Título: Re: obtener el numero que menos se repite en un arreglo
Publicado por: ivancea96 en 19 Noviembre 2016, 12:55 PM
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)