Otra vez yo y mis ejercicios de C (resuelto)

Iniciado por Valor Rojo, Agosto 23, 2012, 07:18:22 PM

Tema anterior - Siguiente tema

Valor Rojo

Necesito ayuda en un programa que estoy haciendo, se trata de un programa que simula un dado, para aprender sobre las funciones rand y srand, pues mi programa no funciona y me ha dado dolor de cabeza, aquí está el código fuente:
Spoiler
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <cstdlib>
#include <time.h>
main()
{
     int numerodado, ciclo, confirm;
     ciclo=1;
     time_t seconds;
     time(&seconds);
     srand((unsigned int) seconds);
     while(ciclo==1)
     {
                    puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                    scanf("%i", &confirm);
                    while(confirm<1&&confirm>2)
                    {
                                               puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                               scanf("%i", &confirm);
                    }
                    if(confirm==1)
                    {
                    numerodado=rand();
                    switch(numerodado)
                    {
                                      case 0:
                                           puts("\nEl dado ha caido en 1\n");
                                            puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                             scanf("%i", &confirm);
                                             while(confirm<1&&confirm>2)
                                             {
                                               puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                               scanf("%i", &confirm);
                                             }
                                      break;
                                      case 1:
                                           puts("\nEl dado ha caido en 2\n");
                                            puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                             scanf("%i", &confirm);
                                             while(confirm<1&&confirm>2)
                                             {
                                               puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                               scanf("%i", &confirm);
                                             }
                                      break;
                                      case 2:
                                           puts("\nEl dado ha caido en 3\n");
                                            puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                             scanf("%i", &confirm);
                                             while(confirm<1&&confirm>2)
                                             {
                                               puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                               scanf("%i", &confirm);
                                             }
                                      break;
                                      case 3:
                                           puts("\nEl dado ha caido en 4\n");
                                            puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                             scanf("%i", &confirm);
                                             while(confirm<1&&confirm>2)
                                             {
                                               puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                               scanf("%i", &confirm);
                                             }
                                      break;
                                      case 4:
                                           puts("\nEl dado ha caido en 5\n");
                                            puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                             scanf("%i", &confirm);
                                             while(confirm<1&&confirm>2)
                                             {
                                               puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                               scanf("%i", &confirm);
                                             }
                                      break;
                                      case 5:
                                           puts("\nEl dado ha caido en 5\n");
                                            puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                             scanf("%i", &confirm);
                                             while(confirm<1&&confirm>2)
                                             {
                                               puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                               scanf("%i", &confirm);
                                             }
                                      break;
                    }
                }
                    else
                    {
                    ciclo++;
                    }
                   
     }
     puts("Usted ha salido del programa \"Dado\" :)");
     getch();
     return 0;
}                                                                                        
[close]
Como le hago para que funcione?

EL DUUUM ES LA RESPUESTA A TODO SHIAAAY TAY ZARPAOOOO

[CptRenko]

#1
2 cosas:

1)
Spoiler
Citarputs("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                     scanf("%i", &confirm);
                     while(confirm<1&&confirm>2)
                     {
                                                puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                                scanf("%i", &confirm);
                     }
                     if(confirm==1)
[close]

Dices que el usuario tiene que ingresar el 2 para continuar, no obstante, programaste que cuando ingrese el 1 el programa continue su ejecucion.

2)

Spoiler
Citar
                      numerodado=rand();
                     switch(numerodado)
                     {
                                       case 0:
                                            puts("\nEl dado ha caido en 1\n");
                                             puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                              scanf("%i", &confirm);
                                              while(confirm<1&&confirm>2)
                                              {
                                                puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                                scanf("%i", &confirm);
                                              }
                                       break;
                                       case 1:
                                            puts("\nEl dado ha caido en 2\n");
                                             puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                              scanf("%i", &confirm);
                                              while(confirm<1&&confirm>2)
                                              {
                                                puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                                scanf("%i", &confirm);
                                              }
                                       break;
                                       case 2:
                                            puts("\nEl dado ha caido en 3\n");
                                             puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                              scanf("%i", &confirm);
                                              while(confirm<1&&confirm>2)
                                              {
                                                puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                                scanf("%i", &confirm);
                                              }
                                       break;
                                       case 3:
                                            puts("\nEl dado ha caido en 4\n");
                                             puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                              scanf("%i", &confirm);
                                              while(confirm<1&&confirm>2)
                                              {
                                                puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                                scanf("%i", &confirm);
                                              }
                                       break;
                                       case 4:
                                            puts("\nEl dado ha caido en 5\n");
                                             puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                              scanf("%i", &confirm);
                                              while(confirm<1&&confirm>2)
                                              {
                                                puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                                scanf("%i", &confirm);
                                              }
                                       break;
                                       case 5:
                                            puts("\nEl dado ha caido en 5\n");
                                             puts("Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                              scanf("%i", &confirm);
                                              while(confirm<1&&confirm>2)
                                              {
                                                puts("\nError, digite de nuevo la confirmacion:\n Presione 2 para lanzar el dado\nPresione1 para salir:\n");
                                                scanf("%i", &confirm);
                                              }
                                       break;
                     }
[close]

¿Que pasa cuando numerodado no es ni 0, 1 ni 2 ni 3 ni 4 ni 5?.
Te falta case default.

Saludos.
http://rinconrenko.x10.mx
Mi rincon..., publicacion de noticias de videojuegos e informatica.
Visitanos!.

Valor Rojo

Logré resolver el problema al final, resulta que cometí un error al usar la función rand() y no determiné su rango  :¡doh!: , además borré parte del código del switch porque repetía la comprobación del ciclo while.

EL DUUUM ES LA RESPUESTA A TODO SHIAAAY TAY ZARPAOOOO