Título: Duda cstdlib y srand (C++) Publicado por: K-YreX en 25 Noviembre 2018, 07:33 am Esto puede parecer una tontería ya que no tiene mucha complicación usar la librería de C++ <cstdlib> y las funciones <srand> y <rand> para generar números aleatorios. Pero qué pasa si no usas <cstdlib> o usas la función <time()> sin incluir <ctime>?? :huh:
Estaba haciendo un programa en el que iba a generar unos números aleatorios pero se me ha olvidado incluir tanto la librería <cstdlib> como la función <srand> es decir que únicamente he usado la función <rand> sin más... Y el programa ha funcionado. :o Me he puesto a hacer pruebas y os dejo los resultados (compilado desde Ubuntu 18.04 con g++ <programa.cpp> -o <programa>): Código
Con este código compila el programa sin errores ni warnings pero sí es cierto que los números son siempre los mismos (lógico por no usar srand). Entonces he probado a incluir la semilla sin nada más, es decir, como se ve aquí: Código Y ahora tengo un programa que compila sin errores ni warnings y que genera los números aleatorios distintos cada vez que se ejecuta el programa (sin compilarlo antes de cada ejecución). ;-) También si os dais cuenta tampoco he incluido <ctime> para usar la función <time()>. :silbar: He estado investigando <iostream> por si incluía <cstdlib> pero no he encontrado nada. Lo de usar <list> es simplemente porque era lo que estaba usando cuando me he dado cuenta de esto y no he querido quitarlo por si tenía algo que ver con la respuesta aunque tampoco he encontrado nada al respecto. Título: Re: Duda cstdlib y srand (C++) Publicado por: AlbertoBSD en 25 Noviembre 2018, 08:11 am A mi me da error:
Código: C:\codigos>g++ -o t.exe t.cpp A de ser algo de tu compilador que la incluye, alguna vez me paso algo similar que sin incluir explícitamente en biblioteca de funciones, el compilador no marcaba errores y generaba el exe sin problemas. Saludos |