Programación en lenguaje C, para cualquier conjunto de números, como {3,1,4,7,2,1,1,2,2}, genera el número con más apariciones y muestra el número de apariciones.
Si es un número de cualquier tamaño, es un poco problemático. Puede establecer dos valores predeterminados para representar el número más grande y el mayor número de veces. Luego sondee y cuente. Si el número es mayor que el valor predeterminado, simplemente reemplácelo. Una vez que se completa el recorrido, se pueden generar esos dos valores.
Si es del 0 al 9, o letras, es relativamente simple. Puede definir una matriz de longitud fija. El subíndice de la matriz representa el valor específico. El contenido de la matriz representa el número de veces que aparece el valor. Recorre una matriz de longitud fija y obtiene el valor.
El código para el primer método es el siguiente y usted mismo puede descubrir el segundo método.
#include?
#include?
int?main(int?argc,?char?const?*argv[]) p>
{
int?num?=?0;//El valor utilizado para almacenar el valor máximo, el valor predeterminado es 0
int?coumt?=?0 ;? //El número utilizado para almacenar el valor máximo, el valor predeterminado es 0
int?temp?=?0;//Variable intermedia
int?n?=?0 ;?/ /Número de matrices
int?*p?=?NULL;?//La primera dirección del espacio asignado, equivalente a &a[0]
printf(" Por favor, introduzca ?el?número?de?matrices:");
while(1)
{
scanf("%d",?&n );
if(n?<=?0)
printf("¿Error?es?scanf,por favor?intentar?nuevamente\n");
else
romper;?
}
p?=?(int?*)malloc(sizeof(int)?*?n); p>
if(p?==?NULL)
{
printf("Error?is?malloc\n");
return ?-1 ;
}
para?(int?i?=?0;?i?
{
printf("¿Por favor?enter?the?num?for?buf[%d]=",?i+1);
scanf("%d",?&p [i] );
}
for?(int?i?=?0;?i?
{
temp?=?0;
para?(int?j?=?i;?j?
{
si?(p[i]?==?p[j])
{
temp++;// contar
}
}
if(coumt?
{
cuenta?=?temp;
num?=?p[i];
}
}
printf ("¿El?número?más?común?es?%d?y?la?cuenta?es?%d\n",?num,?cuenta);
return?0;
}#include?
#include?
int?main(int?argc ,?char?const?*argv [])
{
int?coumt?=?0;?//El número utilizado para almacenar el valor máximo, el valor predeterminado es 0
int? temp?=?0;//Variable intermedia, utilizada para contar
int?n?=?0;?//El número de matrices
int?*p?=? NULL;?//La primera dirección del espacio asignado, equivalente a &a[0]
int?*num?=?NULL;?//La primera dirección del espacio asignado, equivalente a &a[0]
int?flag?=?0;//Defina un bit de bandera para contar el número de apariciones numéricas repetidas
printf(" ¿Por favor? ingrese?
número?de?matrices:");
mientras(1)
{
scanf("%d",?&n);
if?(n?<=?0)
printf("¿Error?es?scanf,por favor?intenta?nuevamente\n");
else
break;?
}
p?=?(int?*)malloc(sizeof(int)?*?n);//Almacena la matriz que deseas
if?(p?==?NULL)
{
printf("¿Error?is?malloc?for?p\n");
return?-1;
}
num?=?(int?*)malloc(sizeof(int)?*?n);//Almacenamiento Matriz de valores numéricos máximos, peor de los casos, sin números duplicados
if?(num?==?NULL)
{
printf("Error?is ?malloc?for?num\n");
return?-1;
}
for?(int?i?=?0;? i?
{
printf("¿Por favor?ingrese?el?num?for?buf[%d]=",?i+ 1 );
scanf("%d",?&p[i]);
}
for?(int?i?=?0; ? i?
{
temp?=?0;
para?(int?j?=?i;?j?
{
si?(p[i]?= = ?p[j])
{
temp++;//count
}
}
si ?(coumt?
coumt?=?temp;
}
for?(int ?i?=?0;?i?
{
temp?= ?0;
para?(int?j?=?i;?j?
{
si? (p[i]?==?p[j])
{
temp++;//Contar
}
}
if?(coumt?==?temp)//Si el número de veces es igual al valor máximo, almacenar
{
num[bandera]?=?p[ i];
bandera++;
}
}
para?(int? i?=?0;?i?< ?flag;?++i)
printf("¿El?número?más?común?es?%d?y?la?cuenta?es?% d\n",?num[i] ,?coumt);
gratis(p);
gratis(num);
retorno?0;
}