programa c++ que simule el lanzamiento de una moneda

Iniciado por swagger14, 1 Marzo 2012, 14:48 PM

0 Miembros y 1 Visitante están viendo este tema.

swagger14

el programa debe decirme cuanta veces cae cara  y viserversa!
int main()
{
  srand(time(NULL));   
  cout << "cuanta veces deseas lanzar la moneda" << endl;
  cin  >> n;

  for (i=0; i<n;i++)


  cout << rand()%2 <<endl;
  if ((rand()%2)==0)
     {cara++;}
     
     if((rand()%2)==1)
         {cruz++;}
 
  cout << "cara\n" << cara  <<endl;
  cout << "cruz\n" << cruz  <<endl;

  cout <<endl;
  system ("pause");
  return 0;


}

rir3760

Cuando tengas un problema con alguno de tus programas no solo debes publicar el código fuente de este sino también explicar en que consiste.

* Cuando se utiliza un bucle se debe indicar la sentencia o, (si son varias) el bloque delimitado por llaves que sera ejecutado.

* Debes almacenar el resultado de llamar a la función "rand".

* También faltan las directivas de inclusión.

* Tampoco declaras las variables utilizadas.


Si al programa se le realizan todas esas correcciones su bucle principal sera mas o menos así:
Código (cpp) [Seleccionar]
for (int i = 0; i < lanzamientos; i++){
   int rv = rand() % 2;
   cout << rv << endl;
   
   if (rv == 1)
      cara++;
   else
      cruz++;
}


Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language


Sagrini


#include <stdio.h>

int main (int argc, char *argv [])
{ if (argc != 2) { printf ("Use: %s <num_lanzamientos>\n", argv [0]); return 1; }
int moneda, i; srand (time (NULL)); int cara=0, cruz=0;
for (i=1; i<=atoi (argv [1]); i++)
{ if (rand ()%2 == 0) { printf ("- Lanzamiento %03d : Cara [+]\n", i); cara++; }
else { printf ("- Lanzamiento %03d : Cruz [-]\n", i); cruz++; }
}
printf ("\n%d caras, %d cruces : %d%c caras\n", cara, cruz, 100*cara/atoi (argv [1]), 37);
return 0;
}

Este está en C, lo acabo de improvisar ;)