Anuncios Google

[Resuelto][Duda][C] Lanzador de dados sale del programa antes de lo previsto... ¿?

Hola a todos.

Esta vez os escribo para pediros ayuda con un code muy simple pero que me está rompiendo el coco :(

La idea es hacer un programa que te pida el número de dados que quieres lanzar (1-2), luego te muestre el resultado de cada dado y te pregunte si quieres volber a lanzar( si escribes 's' o 'S' sigues; si escribes 'n' o 'N' sales).

El problema es que no te pide si quieres salir o volber a tirar...

Aquí os pego el code:

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
  int dado[1];
 
  int numeroDeDados;
 
  char correr = 's';
 
  srand( getpid() );
 
  while( correr == 's' )
  {
    system( "clear" );
 
    printf( "¿Cuantos dados deseas lanzar?(1-2): " );
    fflush( stdin );
    scanf( "%i", &numeroDeDados );
 
    if( numeroDeDados < 1 || numeroDeDados > 2 )
    {
      printf( "Solo puedes lanzar 1 o 2 dados.\n" );
      return 0;
    }
    if( numeroDeDados == 1 )
    {
      dado[0] = rand() % 7 + 1;
      printf( "Dado 1: %i\n", dado[0] );
    }
    if( numeroDeDados == 2 )
    {
      dado[0] = rand() % 7 + 1;
      dado[1] = rand() % 7 + 1;
      printf( "Dado 1: %i\nDado 2: %i\n", dado[0], dado[1] );
    }
 
    printf( "¿Seguir lanzando?(s/n): " );
    fflush( stdin );
    scanf( "%c", &correr );
  }
  return 0;
}

Estaré muy agradecido de quien me ayude :D

Gracias y un saludo.

 

PD: Hera tan facil como en vez de poner %c poner %s en el scanf()... bastante raro no?¿



Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Puedes hacer un for para las

Puedes hacer un for para las tiradas:

 

for (int i = 0; i < NUMERO_DE_DADOS;i++)
{
dado[i] = rand() % 7+1;
printf( "Dado %d: %i\n", i,dado[0] );
}

 

Con eso podrías poner todos los dados que quisieras (bueno, siempre que no fuese más grande que el array de "dado").

 

 

Imagen de User170294

Vale...

Eso lo se hacer de sobra ¬¬

La duda era otra pero cada uno a su rollo...

Imagen de joserc87

No es tontería.

Amchacon te está diciendo una mejora para un código más genérico y más reducido: meter el for en el while. Si en lugar de tener 2 dados tuvieses 8, el código sería "gigantesco" en comparación con el for que te dice amchacon, que no cambiaría ni una línea. Siempre hay que buscar hacer el algoritmo lo más genérico posible por si acaso ;)

Saludos.


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Pero si ya estaba resuelta...

Pero si ya estaba resuelta...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.