Hvad gør funktionen srand (tid (0)) i C ++?


Bedste svar

Lad os bare starte fra starten, da du ved, at computeren genererer pseudorandom tal er ikke rigtig tilfældige, da de er baseret på en formel designet af programmørerne. Og baseret på denne formel genererer computeren sæt tilfældige tal, som vi forventer. En måde at tænke på dette er at sige, at computeren begynder at læse fra en bog, der har numre inde på hver side. Ved at læse fra denne bog kan computeren se ud til at frembringe en række tilfældige tal.

Men der er et problem: Computeren begynder at læse fra bogen fra starten. På grund af denne computer vil altid producere det samme sæt “tilfældige” tal i et program. Antag, at hvis du bruger dette program et eller andet sted, sig et terningkast-spil, vil det altid give de samme resultater, og du ville ikke have det.

En løsning på dette problem ville være, hvis computeren begynder at læse fra et vilkårligt sted. i bogen og ikke fra starten. Nå, dette kaldes “ såning ”. Ved at overføre tidsargumentet til funktionen srand genererer det, det gør, grundlæggende det tilfældige tal baseret på den aktuelle dato og det klokkeslæt, som du får forskellige tilfældige hver gang du starter et program, og dette er dog ikke pålideligt, men fungerer det meste af tiden.

Hvis du brugte denne kode, ville du have inkluderede en fil øverst < cstdlib hvis det ikke er okay. Denne fil indeholder funktionens definition af at generere det tilfældige tal.

Svar

I C ++, hvad sker der, hvis jeg skriver “return 1 “i hovedfunktionen?

Hvis return 1; -erklæringen faktisk udføres, vil det medføre, at dit program afsluttes og returnerer en status på 1 til det kaldende miljø. (Det kan returnere en værdi på 1 til opkaldsfunktionen, men C ++ tillader ikke opkald til main.)

Hvad dette betyder afhænger af miljøet. Sproget tildeler ikke nogen betydning til en returværdi på 1. Det kræver retur 0; for at returnere en status, der angiver succes. Overskriften , der erklærer funktionen exit(), definerer også makroer EXIT\_SUCCESS og EXIT\_FAILURE, som har den indlysende semantik, hvis deres værdier returneres fra main. (Returnering af en værdi fra main svarer i det væsentlige til at ringe til exit() med samme værdi.)

På mange systemer , inklusive Linux, andre UNIX-lignende systemer og Windows, return 0 angiver succes og returnering 1 angiver fiasko – men andre systemer har forskellige konventioner. (Især bruger OpenVMS lige værdier til at betegne fiasko og ulige værdier til at betegne succes, så return 1; vil indikere succes; C-runtime har en særlig kode, der skal gøre return 0; returnerer en ulige, dvs. vellykket status.)

Hvis du skriver kode, der kun er beregnet til at fungere på Linux / UNIX / POSIX-systemer, skal return 1; kan bruges til at angive, at programmet mislykkedes – men return EXIT\_FAILURE; er mere bærbar.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *