Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con arreglos y funcion rand()

Estas en el tema de Problema con arreglos y funcion rand() en el foro de C/C++ en Foros del Web. Hice un programa que simula lanzar un dado 6000 veces, guarda los resultados en un arreglo y después imprime cuantas veces salió cada cara del ...
  #1 (permalink)  
Antiguo 30/05/2011, 12:04
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Exclamación Problema con arreglos y funcion rand()

Hice un programa que simula lanzar un dado 6000 veces, guarda los resultados en un arreglo y después imprime cuantas veces salió cada cara del "dado"... pero me da resultados incorrectos... En cada cara del dado (1,2,3,4,5,6) salen numeros mucho mayores que 6000... entonces no entiendo que pasa!

Este es el código:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define TAMANIO 7
  6.  
  7. int main()
  8. {
  9.     int cara;
  10.     int tiro;
  11.     int frecuencia[TAMANIO];
  12.  
  13.     srand(time(NULL));
  14.  
  15.     for(tiro = 1; tiro <= 6000; tiro++){
  16.         cara = (rand() % 6) + 1;
  17.         ++frecuencia[cara];
  18.         }
  19.  
  20.     printf("%s%17s\n", "Cara", "Frecuencia");
  21.  
  22.     for(cara = 1; cara < TAMANIO; cara++){
  23.         printf("%4d%17d\n", cara, frecuencia[cara]);
  24.         }
  25.     getch();
  26.     return 0;
  27. }
  #2 (permalink)  
Antiguo 30/05/2011, 12:08
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Problema con arreglos y funcion rand()

Ahhh... no, ya ví por qué era...
Por no inicializar el arreglo frecuencia en 0's...

Código C:
Ver original
  1. int frecuencia[TAMANIO] = {0};

Así...

XD

Etiquetas: arreglos, funcion, rand
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:06.