Mejor respuesta
Empecemos desde el principio, ya que sabe que la computadora genera pseudoaleatorios números no verdaderamente aleatorios ya que están basados en alguna fórmula diseñada por los programadores. Y en base a esa fórmula, la computadora genera un conjunto de números aleatorios como esperamos. Una forma de pensar en esto es decir que la computadora comienza a leer un libro que tiene números en cada página. Al leer este libro, la computadora puede parecer que produce una secuencia de números aleatorios.
Pero hay un problema: la computadora comienza a leer el libro desde el principio. Debido a esto, la computadora siempre producirá el mismo conjunto de números «aleatorios» en un programa. Suponga que si está usando este programa en algún lugar, digamos que un juego de tirar dados, siempre producirá los mismos resultados y no querría eso.
Una solución a este problema sería si la computadora comienza a leer desde un lugar arbitrario en el libro y no desde el principio. Bueno, esto se llama « siembra ”. Al pasar el argumento de tiempo a la función srand , lo que hace es básicamente generar el número aleatorio basado en la fecha y hora actuales debido a lo cual obtienes un valor aleatorio diferente cada vez que inicias un programa, y esto no es confiable, pero funciona la mayor parte del tiempo.
Si usaras este código, habrías incluyó un archivo en la parte superior < cstdlib si no está bien. Este archivo contiene la definición de la función de generar el número aleatorio.
Respuesta
En C ++, ¿qué pasará si escribo «return 1 «en la función principal?
Si la instrucción return 1;
se ejecuta realmente, hará que su programa finalice, devolviendo un estado de 1 al entorno de la llamada. (Podría devolver un valor de 1 a la función de llamada, pero C ++ no permite llamar a main
.)
Lo que esto significa depende del entorno. El lenguaje no asigna ningún significado a un valor de retorno de 1. Requiere retorno de 0; para devolver un estado que indique éxito. El encabezado
, que declara la función exit()
, también define macros EXIT\_SUCCESS
y EXIT\_FAILURE
, que tienen la semántica obvia si sus valores se devuelven desde main. (Devolver un valor de main
es esencialmente equivalente a llamar a exit()
con el mismo valor).
En muchos sistemas , incluidos Linux, otros sistemas similares a UNIX y Windows, devolver 0 denota éxito y devolver 1 denota falla, pero otros sistemas tienen convenciones diferentes. (En particular, OpenVMS usa valores pares para denotar fallas y valores impares para denotar éxito, por lo que return 1;
indicaría éxito; el tiempo de ejecución de C tiene un código especial para hacer return 0;
devuelve un estado extraño, es decir, exitoso.)
Si está escribiendo código que solo está destinado a funcionar en sistemas Linux / UNIX / POSIX, return 1;
se puede usar para indicar que el programa falló, pero return EXIT\_FAILURE;
es más portátil.