[Curso] Introducción a la programación en C (IX)

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3379
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por dark_sasuke »

Pos entonces seria dejar (rand % 99999) no? :D
Imagen

Avatar de Usuario
finfantasy
Habitual
Habitual
Mensajes: 153
Registrado: 15 Oct 2009, 19:00

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por finfantasy »

Si suponemos que el primer número de la lotería es el 1, debería ser rand % 99999 + 1.

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por arisma »

finfantasy escribió:Si suponemos que el primer número de la lotería es el 1, debería ser rand % 99999 + 1.


Mejor no suponer nada. Consta de 5 números del 0..9 jeje

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por m0skit0 »

Es decir, desde 00000 hasta 99999 (100.000 números en total). Por tanto no vale ni (rand % 99999) ni (rand % 99999) + 1.
Imagen

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3379
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por dark_sasuke »

pero profes lo que yo postee ta bien? :lol: :mrgreen: ... mirad que cojo la programacion y preciso el profe anda liao con su HBL xD
Imagen

Puzky
Experto
Experto
Mensajes: 825
Registrado: 07 Oct 2009, 22:09
PSN ID: Puzky

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por Puzky »

Lo que te quiso decir el profe es que como lo tienes no está bien. Seria mejor que vaya saliendo numero por numero y no los 5 de una sola vez :oki: . Me explico?

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3379
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por dark_sasuke »

Puzky escribió:Lo que te quiso decir el profe es que como lo tienes no está bien. Seria mejor que vaya saliendo numero por numero y no los 5 de una sola vez :oki: . Me explico?


Ahhhh vale, asi que tendre que intentar hacerlo con bucle :(:(:(: , weno ya cuando vuelva de mi minis vacaciones hasta el domingo lo intetare :)
Imagen

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por m0skit0 »

Si los bucles es lo que peor se te da, es lo que más tendrías que practicar, no intentar evitarlos :tongue:
Imagen

Avatar de Usuario
~Rdavid~
Experto
Experto
Mensajes: 965
Registrado: 12 Nov 2009, 17:29
Ubicación: Costa Rica

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por ~Rdavid~ »

Bueno con algo de tiempo el logrado hacer los ejercicios de esta parte :mrgreen:

Primero.
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
  //Variables
  int billete, loter;
 
  //intrducimos el billete de lotería
  printf("Introduce tu billete de lotería, maximo 5 cifras.\n");
  printf("Billete: ");
  scanf("%d", &billete);
 
  //bucle de error por si poner más de 5 cifras
  while (billete > 99999)
  {
    printf("Tiene que ser de 5 cifras, intrduce denuevo tu billete de lotería\n");
    printf("Billete: ");
    scanf("%d", &billete);
  }
 
  printf("Pulsa enter para saber que número de lotería salió\n");
  system("read foo");
 
  //inicia generador de números aleatorios
  srand(time(NULL));
 
  // numero aleatorio entre 10000 y 99999
  loter = (rand() % 99999) + 10000;
  printf("El número es... %d\n", loter);
 
  //Si loter es igual a billete
  if (loter == billete)
    printf("Felicidades aunque parecía imposible pero ganaste :D\n");
  //Si es diferente
  else
    printf("Perdiste, mejor dedicate a jugar poker.\n");
 
 
  return 0;
}


Segundo.
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 
  int num_secr, num_intr, inten;
 
  //Inicia generador de números aleatorios
  srand(time(NULL));
 
  //Generamos un número aleatorio entre 1 y 10
  num_secr = (rand() % 10) + 1;
     

  //Comienza el bucle si hay menos de 5 intentos y num_secr es diferente de num_intr
  for (inten = 1;(inten <= 5 && num_intr != num_secr); inten++)
  {
    //Introducimos el numero intentando adivinar
    printf("Jugador introduca un número del 1 al 10 para adivinar, solo tiene 5 intentos\n");
    printf("Número: ");
    scanf("%d", &num_intr);
    printf("\n\n");
   
    //Intentos
    printf("Intentos [%d]\n", inten);
       
    //Si el numero esta entre 1 a 10
    if (num_intr > 0 && num_intr < 10)
    {
      //Si el numero intr es igual al secr
      if (num_intr == num_secr)
      {
        printf("!Acertaste¡\n");
   printf("Bien echo\n");
      }
     
     
      else
      {
        // Si no sube un intento y vuleve a comenzar el bucle
   printf("Ops, fallaste\n");
      }
    }
    //Si no esta entre el 1 al 10 vuleve a comenzar el bucle
    else
      printf("Tiene que ser del 1 al 10\n");
   
  }
  //Cuando llega a 5 intentos
  if (inten = 5)
  {
  printf("Game Over\n");
  printf("El número secreto era %d\n", num_secr);
  }
   
   
  return 0;
         
}


Con este de una vez corrijo el return 0; de más que tenía en el otro ejercicio :oki:

Tercero.
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char* argv[])
{
    //variables 
    int dado_maquina, dado_humano;

   printf("Vamos a jugar a los dados\n");
   
   printf("Tu tiras primero, pulsa enter para tirar los dados.\n");
   system("read foo");
   
   // Iniciamos el generador de números aleatorios
   srand(time(NULL));

   //número entre 1 y 6
   dado_humano = (rand() % 6) + 1;
   printf("Tu tirada ha sido: %d\n", dado_humano);

   printf("Ahora tiro yo, pulsa enter cuando quieras que tire los dados.\n");
   system("read foo");
   
   srand(time(NULL));
   
   
   //Saca un numero al azar más alto dependiendo del que saco dado_humano
   switch (dado_humano)
   {
     case 1:
       dado_maquina = (rand() % 6) + 1;
     case 2:
       dado_maquina = (rand() % 5) + 2; 
     case 3:
       dado_maquina = (rand() % 4) + 3;
     case 4:
       dado_maquina = (rand() % 3) + 4;
       break;
     case 5:
       dado_maquina = (rand() % 2) + 5;
       break;
     default:
       dado_maquina = 6;
       break;
   }
       
     
       
   printf("Mi tirada ha sido: %d\n", dado_maquina);

   //Si la maquina gana...
   if (dado_maquina > dado_humano)
   {
      printf("Jaja perdiste, pero no te preocupes en la proxima ganaras\n");
   }
   //Por si hay un empate
   else
   {
      printf("Los siento pero la casa gana\n");
   }
   
   printf("Juego terminado\n");
     
   

    return 0;
}


Con un switch era lo más sencillo, supongo que habrá un método matemático para esto.

Bueno veré si puedo corregir lo que no e corregido de la parte VIII :oki:

Saludos.
Última edición por ~Rdavid~ el 14 Oct 2010, 08:27, editado 1 vez en total.
Imagen

Avatar de Usuario
Dante
Enteradillo
Enteradillo
Mensajes: 42
Registrado: 28 May 2010, 01:51

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por Dante »

Entrego los dos primeros ejercicios, mañana hago el ultimo, que ya tengo sueño y no razono bien
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    int num;

   printf("En unos momentos daremos los numeros de la loteria ganadora de Maxhordes de hoy.\n");
   printf("Buena suerte...\n");
   getchar();

   srand(time(NULL));

   num = (rand() % 99999) + 10000;
   printf("Y los numeros de hoy son: %d\n", num);

    return 0;
}


Ejercicio 2
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    int num, sec, con;

   srand(time(NULL));
   sec = (rand() % 10) + 1;

   printf("Adivina el numero secreto: ");
   scanf("%d", &num);

   for(con = 0; con <= 3; con++)
   {
      if(num == sec)
       {
          printf("Tu ganas\n");
          goto salida;
       }

      else
       {
          printf("Fallaste, introduce otro numero: ");
          scanf("%d", &num);
       }

   }
   
   salida:

    return 0;
}

Se que el uso excesivo e indiscriminado del goto no es bien visto en la programación, pero creo que esta vez no esta tan mal.

El otro ejercicio lo entrego al rato :pinta: ...

Responder