Estoy suponiendo que los datos son ingresados por un teclado o por una comunicacion serial y usando C!Crea un array con 10 variables de 8 bits.
Cuando detectes el numero incrementas la cantidad segun el indice. Ejemplo.
uint8_t Cantidad[10];
uint8_t total_numeros = 0;
while(1)
{
Numero = numero_recibido(); //Supone que esta funcion te da el numero de 0 a 9
Cantidad[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
}
}
De esa forma en Cantidad[0] tendrias las veces que se presiono el 0, en Cantidad[1] las veces que se presiono 1. Y asi sucesivamente.
Lo unico que tendrias que hacer luego de que pasen los 30 numeros es verificar cual es que se presiono mas veces. el indice te va a dar el numero y el contenido la cantidad.
indice_maximo = 0;
for( i = 0; i<10; i++)
{
if ( Cantidad[i] > Cantidad[indice_maximo] )
{
indice_maximo = i
}
}
// Numero mas veces presionado:
Mostrar(indice_maximo);
// Cantidad de veces presionadas:
Mostrar(Cantidad[indice_maximo];
Lo unico que si te fijas en la comparacion pido que sea mayor, es decir que si se presiono la misma cantidad de veces el 4 y el 5, el que sea menor va a "ganar", si la condicion hubiera sido mayor o igual, entonces era el 5.
En caso de que el te de un array con 30 valores, y usando CReemplazar:
Numero = numero_recibido(); //Supone que esta funcion te da el numero de 0 a 9
por
for( i = 0; i<30; i++)
{
Cantidad[Valores_profe[i]];
}
En caso de que te de un vector, y lo quieras hacer en C++, tal ves quieras ver esto, que fue realizado para un string pero que podrias usarlo para numeros tambien:
int main() {
int max = 0;
int result = 0;
unsigned int rep_count = 1;
string words;
vector<string> vec;
cout << "Please enter your words " << endl;
while(cin>>words && words != "qu"){
vec.push_back(words);
}
if (!vec.size())
return 0;
for(unsigned int i = 1; i < vec.size(); i++){
if (vec[i] == vec[i-1]) {
rep_count++;
} else {
rep_count = 1;
}
if (rep_count > max) {
result = i;
max = rep_count;
}
}
cout<<"Word = "<<vec[result]<<", Repitition = "<<max<<endl;
return 0;
}
o usar count si es que busca mas que nada que aprendan C++ y no programacion y un poco de ingeniohttp://www.cplusplus.com/reference/algorithm/count/