Nejlepší odpověď
Začněme od začátku, protože víte, že počítač generuje pseudonáhodná čísla nejsou opravdu náhodná, protože jsou založena na nějakém vzorci navrženém programátory. A na základě tohoto vzorce počítač vygeneruje sadu náhodných čísel, jak očekáváme. Jeden způsob, jak o tom přemýšlet, je říci, že počítač začne číst z knihy, která má na každé stránce čísla. Čtením z této knihy může počítač vypadat, že vytváří sekvenci náhodných čísel.
Ale je tu problém: Počítač začne číst z knihy od začátku. Kvůli tomuto počítači bude v programu vždy produkována stejná sada „náhodných“ čísel. Předpokládejme, že pokud někde používáte tento program, řekněte, že hra s kostkami bude mít vždy stejné výsledky a to byste nechtěli.
Řešením tohoto problému by bylo, kdyby počítač začal číst z libovolného místa v knize a ne od začátku. Tomu se říká „ očkování “. Předáním časového argumentu do funkce srand se v podstatě vygeneruje náhodné číslo na základě aktuálního data a času, kvůli kterému se při každém spuštění programu dostanete náhodně, a to není spolehlivé, ale funguje to po většinu času.
Pokud byste použili tento kód, měli byste zahrnoval soubor nahoře < cstdlib pokud není v pořádku. Tento soubor obsahuje definici funkce generování náhodného čísla.
Odpověď
V jazyce C ++, co se stane, když napíšu „návrat“ 1 „v hlavní funkci?
Pokud je příkaz return 1;
skutečně spuštěn, způsobí ukončení vašeho programu a vrátí stav 1 do volajícího prostředí. (Mohlo by to vrátit hodnotu 1 do volající funkce, ale C ++ nepovoluje volání main
.)
Co to znamená, záleží na prostředí. Jazyk nepřiděluje návratové hodnotě 1 žádný význam. Vyžaduje návrat 0; vrátit stav označující úspěch. Záhlaví
, které deklaruje funkci exit()
, také definuje makra EXIT\_SUCCESS
a EXIT\_FAILURE
, které mají zjevnou sémantiku, pokud jsou jejich hodnoty vráceny z main. (Vrácení hodnoty z main
je v zásadě ekvivalentní volání exit()
se stejnou hodnotou.)
V mnoha systémech , včetně Linuxu, dalších systémů podobných systému UNIX a Windows, návrat 0 označuje úspěch a návrat 1 označuje selhání – ale jiné systémy mají různé konvence. (Zejména OpenVMS používá sudé hodnoty k označení selhání a liché hodnoty k označení úspěchu, takže return 1;
by označoval úspěch; běhový modul C má speciální kód pro vytvoření vrátit lichý, tj. úspěšný stav.)
Pokud píšete kód, který je určen pouze pro práci v systémech Linux / UNIX / POSIX, return 1;
lze použít k označení, že program selhal – ale return EXIT\_FAILURE;
je přenosnější.