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

"Suma de números aleatorios"

Estas en el tema de "Suma de números aleatorios" en el foro de C/C++ en Foros del Web. Hola buenas noches a todos, veran en la escuela me dejaron hacer un programa, que simule el resultado de lanzar 2 dados, obviamente el resultado ...
  #1 (permalink)  
Antiguo 25/09/2012, 23:27
 
Fecha de Ingreso: mayo-2011
Ubicación: Toluca
Mensajes: 115
Antigüedad: 13 años
Puntos: 2
"Suma de números aleatorios"

Hola buenas noches a todos, veran en la escuela me dejaron hacer un programa, que simule el resultado de lanzar 2 dados, obviamente el resultado debe estar entre 2 y 12 eso ya lo estube investigando con la funcion RAND. Hasta ahorita mi codigo lo tengo asi:

Código C++:
Ver original
  1. #include<stdio.h> *// libreria basica para entrada y salida
  2. #include<stdlib.h> // libreria para el uso de rand()
  3. #include<conio.h> *// libreria para el uso de getch()
  4. void main( )
  5. {
  6.      int numero,cantidad,contador;  // Declaracion de variables
  7.  
  8.         printf("Ingrese la cantidad de numeros aleatorios que desea generar: \n");  //Recogemos por teclado la cantidad de numeros que quiere el usuario
  9.         scanf("%d",&cantidad);  //Variable que guarda la cantidad de numeros aleatorios que desea el usuario
  10.  
  11.         for(contador = 0; contador<cantidad; contador++) //Ciclo que genera los numeros aleatorios segun la cantidad indicada
  12.         {
  13.  
  14.                numero = rand()%11+2; //Variable que guarda el numero aleatorio >= 2, pero <= a 12
  15.                printf("%d ", numero); //Imprime el numero aleatorio el numero de veces indicado
  16.         }
  17.             getch(); //Pausamos la pantalla para poder ver resultado
  18.  
  19. }


Esto es lo sencillo pero en lo que necesito ayuda porque no se como realizarlo es lo siguiente. Supongamos que pido 10 numeros y salen los siguientes resultados:

2,2,2,2,2,3,3,5,5,10

Lo que tiene que hacer el programa es mostrarme algo como lo siguiente:

Numero 2=5 veces ---50%
Numero 3=2 veces ---20%
Numero 5=2 veces ---20%
Numero 10=1 vez ---10%

Porfavor ayudenme se los agradeceria mucho, que tengas muy buen dia...
  #2 (permalink)  
Antiguo 26/09/2012, 08:32
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 4 meses
Puntos: 46
Respuesta: "Suma de números aleatorios"

Tienes un fallo en el programa, ya que el resultado de tirar dos dados no sera un numero aleatorio del 1 al 12 sino la suma de 2 aleatorios de 6, lo cual es diferente ya que hay numeros que es mas probable que toquen.

Por ejemplo: El 12 solo se obtiene de 6 + 6, en canvio el 7 puede ser 6+1 o 5+2 o 4+3.

Asi que tienes que tener eso en cuenta.
  #3 (permalink)  
Antiguo 26/09/2012, 11:51
 
Fecha de Ingreso: mayo-2011
Ubicación: Toluca
Mensajes: 115
Antigüedad: 13 años
Puntos: 2
Respuesta: "Suma de números aleatorios"

Hola gracias por tu aporte, pero no es exactamente un juego de dados, es como lo dije una simulación, solo algo parecido. Hasta este punto mi programa ya hace la primera parte de lo que se nos pidio que hiciera, pero gracias por la observacion...

Alguna idea sobre que necesito que haga???
  #4 (permalink)  
Antiguo 26/09/2012, 13:41
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 4 meses
Puntos: 46
Respuesta: "Suma de números aleatorios"

Perdon, no lei la segunda parte lo siento xD.

Osea que quieres que te haga un recuendo de cada numero no es asi?

Facil simplemente haces:
Código C:
Ver original
  1. for(i=0;i<numtot;i++)
  2. {
  3.     if(numeros[i]==2)contador2++;
  4.     ...Lo haces para cada numero
  5.  
  6. }
  7.  
  8. //Una vez hecho esto solo tienes que hacer los tipicos porcentajes de toda la vida
  9. //contador2/numtotal *100 = x
  10. //y ya lo tienes

Saludos.

Etiquetas: funcion, int, programa, variables
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 17:55.