problema en rand()

Iniciado por anonym2003, 22 Febrero 2017, 21:10 PM

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

anonym2003

Código (cpp) [Seleccionar]
/* Está programado en ubuntu, no se si eso canviara algo*/
#include <iostream>
#include <cstdlib>

using namespace std;

int main () {
 int number = (rand() % 100);
 int introducedNumber;

 while (cout << "Try to guess the number: ") {
 cin >> introducedNumber;

 if (introducedNumber == number) {
   cout << "YOU WIN :)" << endl;
 }
 if (introducedNumber < number) {
   cout << "Too low :(" << endl;
 }
 if (introducedNumber > number) {
   cout << "Too High :(" << endl;
 }
}
 return 0;
}


El valor aleatorio siempre es 83, como puedo solucionar eso? Gracias.

ivancea96

Hay que ponerle una semilla a la función rand, con la función srand().

La semilla debe ser lo más aleatoria posible. normalmente, se utiliza el tiempo  (que rara vez va a ser igual).

Código (cpp) [Seleccionar]
#include <ctime>
#include <cmath>

int main(){
    srand(time(0));
}


Solo llamas a srand 1 vez por programa (salvo que realmente quieras hacerlo más veces, vaya)
Si llamas a srand con la misma semilla otra vez, los números que saldrán serán los mismos de nuevo.