SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: daniqh en Sábado 5 de Diciembre de 2009, 13:55

Título: programa de adivinar un numero.
Publicado por: daniqh en Sábado 5 de Diciembre de 2009, 13:55
Hola , estoy realizando un programa de clase en el que tengo que generar un numero aleatorio dentro de un rango introducido por el usuario ,y que el usuario en n intentos lo logre acertar. El problemilla que tengo es que me genera el numero aleatorio ,pero siempre que pongo ese mismo rango de numeros me genera el mismo ... :S se que el problema esta en el srand(time(NULL)); pero es que si lo dejo de comentar me deja de funcionar.
Código: C++
  1.  
  2. #include<stdlib.h>                                      /*JUEGO*/
  3. #include<stdio.h>
  4. #include<conio.h>
  5. #include<iostream.h>
  6.  
  7. void main(){
  8.     int inicio_rango,fin_rango,aleatorio,i,n,n_intentos;
  9.     char respuesta;
  10.   //    srand(time(NULL));
  11.  
  12.     i=0;
  13.  
  14.     printf("...::::[ JUEGO ]::::...n");
  15.     printf("n");
  16.     printf("Desea jugar? (S/N) n");
  17.     respuesta=getch();
  18.  
  19.     if((respuesta=='S')||(respuesta=='s')){
  20.         printf("Introduce un numero para iniciar el rango n");
  21.         scanf("%i",&inicio_rango);
  22.         printf("Introduce un numero para terminar el rango n");
  23.         scanf("%i",&fin_rango);
  24.         printf("Su rango va de %i a %i n",inicio_rango,fin_rango);
  25.  
  26.         aleatorio=inicio_rango+rand()%(fin_rango-inicio_rango);
  27.         n=aleatorio+1;
  28.  
  29.         printf("Introduce un numero de intentos n");
  30.         scanf("%i",&n_intentos);
  31.  
  32.         while(i<=n_intentos){
  33.                 while(n!=aleatorio){
  34.                     printf("Introduce un numeron");
  35.                     scanf("%i",&n);
  36.                     if(n>aleatorio)
  37.                         printf("Es menor que %i n",n);
  38.                     if(n<aleatorio)
  39.                         printf("Es Mayor que %i n",n);
  40.                         i++;
  41.               }
  42.  
  43.                 if(n==aleatorio){
  44.                     printf("Has acertado en %i intentos el numero: %i n",i,aleatorio);
  45.                     break;}
  46.  
  47.              }
  48.  
  49.  
  50.         }//Cierra IF
  51.     else{
  52.       printf("No desea jugar n");
  53.       }
  54.  
  55. }
  56.  
  57.  
Saludos

PD: Uso el turbo c++ (borland)
Título: Re: programa de adivinar un numero.
Publicado por: Epa en Sábado 5 de Diciembre de 2009, 20:54
Buenas.

proba usar esta variante haber si funciona

Código: C++
  1.  
  2.     time_t rd;
  3.    
  4.     time(&rd);
  5.     srand(rd);
  6.  
  7.  

saludos
Título: Re: programa de adivinar un numero.
Publicado por: daniqh en Domingo 6 de Diciembre de 2009, 14:42
Hola,gracias por responder. He puesto lo que me has dicho y me sigue tirando error ... Debe de ser que no lo soporta el borland c++ o no se xD
Título: Re: programa de adivinar un numero.
Publicado por: ProfesorX en Domingo 6 de Diciembre de 2009, 22:45
Lamentablemente no tengo el Turbo C++, pero me parece que te falta inciuir un archivo.

para usar

Código: C
  1.  
  2.  
  3.  

tienes que poner

Código: C
  1.  
  2. #include <time.h>
  3.  
  4.  

Si eso no resuelve tu problema, deberias poner cual es el error que te marca, para que podamos tener una mejor idea de cual es el problema.

Saludos :)
Título: Re: programa de adivinar un numero.
Publicado por: daniqh en Lunes 7 de Diciembre de 2009, 14:20
Bueno ya lo he arreglado, he sustituido srand(time(NULL)); por randomize(); y ahora me genera un numero aleatorio dentro del rango y si vuelvo a poner el mismo rango me genera otro distinto.

Saludos y gracias a los que habeis respondido el post ;)