C/Visual C - como mostrar frecuencia en un vector en C

 
Vista:
sin imagen de perfil

como mostrar frecuencia en un vector en C

Publicado por Daniel (4 intervenciones) el 19/05/2016 14:05:16
Hola, el siguiente codigo en C, genera un vector con numeros al azar, y luego indica con que frecuencia salio cada numero.
Es solo una linea que no entiendo, esta marcada con un comentario en el codigo ( Don de dice /* Esta linea es la que no entiendo, Gracias!*/) Solo entiendo que es en esta linea donde se cuenta con que frecuencia salio cada numero, pero no la entiendo. Desde ya muchas gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
  int frecuencia[5] = { 0 };
  int i, numero;
  srand(time(NULL));
 
/* Proceso numeros */
   for(i = 0; i < 10; i++)
{
  numero = rand() % 5;
  frecuencia[numero]++;       /*   Esta linea es la que no entiendo, Gracias!*/
}
/* Muestro resultado */
   for(i = 0; i < 5; i++)
{
   printf("%d salio %d veces\n", i, frecuencia[i]);
}
   return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

como mostrar frecuencia en un vector en C

Publicado por agustin (272 intervenciones) el 20/05/2016 23:57:39
Lo que hace es que calcula un valor aleatorio entre 0 y 4 y tiene un array con 5 elementos inicializados a 0. El número que salga lo usa como indice del array e incrementa el valor que tenga el array en esa posición. Si quieres saber por ejemplo cuantas veces salio el 3 miras el índice 3 del array y su valor será el número de veces que salió.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

como mostrar frecuencia en un vector en C

Publicado por daniel (4 intervenciones) el 21/05/2016 04:54:05
Hola, muchas gracias! Es decir, si el numero al azar estuviera entre 0 y 9, el array "frecuencia", tendria que tener 10 elementos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

como mostrar frecuencia en un vector en C

Publicado por agustin (272 intervenciones) el 21/05/2016 11:54:21
Exacto, dispuestos de 0 a 9. Si por ejemplo el número al azar fuese entre 10 y 20 seria igual solo que el array seria de 11 elementos y rand quedaria asi:
1
2
3
4
#define MIN 10
#define N_ELEMENTOS 11
int frecuencia[N_ELEMENTOS] = { 0 };
numero = MIN + rand() % N_ELEMENTOS ;
Luego haces:
1
frecuencia[numero-MIN]++;
Y para mostrar resultados:
1
2
3
4
for(i = 0; i < N_ELEMENTOS; i++)
{
   printf("%d salio %d veces\n", i+MIN, frecuencia[i]);
}

Con esos cambios basta modificar las dos constantes de arriba y podrás acomodar a lo que quieras.
Sólo dos cosas y es que MIN tiene que ser mayor o igual a 0 y N_ELEMENTOS tiene que ser 2 o mayor ya que si fuese 1 siempre devolvería el mismo número y no tendría sentido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

como mostrar frecuencia en un vector en C

Publicado por Daniel (4 intervenciones) el 21/05/2016 14:14:08
Genial!! Muchas gracias nuevamente. Me quedo claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar