Yo propongo una optimización para que cuando termines de ingresar los numeros ya no tengas que hacer de nuevo un For,Que tal y si es en C++, estoy programando un atmega, como quedaria en C++, no se si se manejen igual, y si el me dara los 30 numeros si me sirvio para darme una idea
ademas hizo falta la declaración de la variable "Numero"Código: C
uint8_t Cantidad[10]; uint8_t total_numeros = 0; uint8_t Numero = 0; uint8_t numero_mas_repetido = 0; uint8_t veces = 0; while(1) { Numero = numero_recibido(); //Supone que esta funcion te da el numero de 0 a 9 Cantidad[Numero]++; if(veces < Cantidad[Numero]) { veces = Cantidad[Numero]; numero_mas_repetido = Numero; } total_numeros++; if(total_numeros >= 30 ) { //Mostrar aca. //Poner a 0 el array Cantidad, asi comienza de vuelta //Poner a 0 la variable total_numeros //terminar el while } }
Y en caso de que te de el array de valores, quedaria asi:Código: C
uint8_t Numero[30] = {1,4,6,7,8,3,4,6,2,5,4,7,6,8,5,6,4,3,2,3,4,5,4,6,7,8,7,6,5,4}; uint8_t Cantidad[10]; uint8_t numero_mas_repetido = 0; uint8_t veces = 0; for(uint8_t i=0; i < 30; i++) { Cantidad[Numero[i]]++; if(veces < Cantidad[Numero[i]]) { veces = Cantidad[Numero[i]]; numero_mas_repetido = Numero[i]; } } //A partir de aqui continuamos con el despliege de mensajes
Saludos