Legjobb válasz
Kezdjük az elejétől, mivel tudod, hogy a számítógép generál pszeudorandom számok nem igazán véletlenszerűek, mivel a programozók által tervezett valamilyen képleten alapulnak. Ezen a képleten alapulva a számítógép véletlenszerű számok készítését generálja, amire számítunk. Az egyik gondolkodásmód az, hogy a számítógép egy könyvből kezd olvasni, amelynek minden oldalán számok vannak. Ebből a könyvből olvasva megjelenhet a számítógép, amely véletlenszerű számok sorozatát állítja elő.
De van egy probléma: A számítógép a kezdetektől kezdve olvas a könyvből. Emiatt a számítógép mindig ugyanazokat a „véletlenszerű” számokat állítja elő egy programban. Tegyük fel, hogy ha valahol ezt a programot használja, akkor mondjon egy dobókocka játékkal, mindig ugyanazokat az eredményeket hozza, és Ön ezt nem szeretné.
A probléma megoldása az lenne, ha a számítógép önkényes helyről kezdene olvasni a könyvben és nem a kezdetektől fogva. Nos, ezt „ magvetés ” -nak hívják. Azáltal, hogy az idő argumentumot átadja a srand függvénynek, alapvetően a véletlenszámot generálja. az aktuális dátum és idő alapján, amelyek miatt minden program indításakor különböző véletlenszerűségeket kap, ez azonban nem megbízható, de az idő nagy részében működik.
Ha ezt a kódot használta volna, fájlot tartalmazott a tetején < cstdlib , ha nem is baj. Ez a fájl tartalmazza a függvény definícióját a véletlenszám előállításáról.
Válasz
C ++ nyelven mi fog történni, ha írok “return” 1 “a fő funkcióban?
Ha a return 1;
utasítás valóban végrehajtásra kerül, a program leáll, és 1-es állapotot ad vissza a hívó környezetbe. (Visszaadhatja az 1 értéket a hívó függvénynek, de a C ++ nem engedélyezi a main
hívást.)
Ez mit jelent, a környezettől függ. A nyelv nem tulajdonít jelentést az 1-es visszatérési értéknek. a sikert jelző állapot visszaadásához. A
fejléc, amely a exit()
függvényt deklarálja, meghatározza a EXIT\_SUCCESS
és EXIT\_FAILURE
, amelyek nyilvánvaló szemantikával bírnak, ha értékeik visszaadódnak a mainból. (A (z) main
érték visszaadása lényegében egyenértékű a exit()
azonos értékű hívásával.)
Sok rendszeren , beleértve a Linuxot, más UNIX-szerű rendszereket és a Windows-ot is, a 0-as eredmény a sikert, az 1-es pedig a kudarcot jelöli – de más rendszerek eltérő szokásokkal rendelkeznek. (Különösen az OpenVMS páros értékeket használ a kudarc, a páratlan értékeket pedig a siker jelölésére, így a return 1;
a sikert jelzi; a C futási idő speciális kóddal rendelkezik, hogy return 0;
páratlan, azaz sikeres állapotot ad vissza.)
Ha olyan kódot ír, amely csak Linux / UNIX / POSIX rendszereken használható, return 1;
segítségével jelezhetjük, hogy a program nem sikerült, de a return EXIT\_FAILURE;
sokkal hordozhatóbb.