07. december 2003 - 21:36
Der er
8 kommentarer og 1 løsning
Random funktion giver højst en integer?
Hey Eksperter, hvordan kan det være at følgende funktion højst giver en integer (32xxx hvad det nu er).. ? #include <stdio.h> #include <time.h> int main(void) { long i; long randomnumber, savenumber; i = 1; savenumber = 0; srand(time(NULL)); while(i<100000) { randomnumber = rand(); if(randomnumber > savenumber) { savenumber = randomnumber; } printf("%d\n", randomnumber); i++; } printf("\nHigest number:\n%d", savenumber); return 0; }
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
07. december 2003 - 21:39
#1
Din C compiler's rand funktion retunerer vel ikke større værdier ...
07. december 2003 - 21:40
#2
Det er implementations specifikt hvor store værdier rand returnerer. stdlib.h definerer en konstant RAND_MAX som angiver værdien.
07. december 2003 - 21:41
#3
Hvis du har brug for større værdier så bruger du bare din egen random generator.
07. december 2003 - 21:50
#4
det passede at RAND_MAX står til 0x7FFF.. jeg har prøvet at omskrive den i header filen, men det ser ikke ud til at virke alligevel?
07. december 2003 - 21:52
#5
Du skal ikke rette i header-filen. Den bruger ikke den konstant til at beregen med. Den er kun information til dig. Du skal kode din egen.
07. december 2003 - 21:52
#6
Eksempel: #include <stdio.h> #include <stdlib.h> #include <time.h> static unsigned long int seed; void mysrand(unsigned long int ss) { seed=ss; return; } unsigned long int myrand() { seed=(16807*seed) % 2147483647; return seed; } int main(int argc,char *argv[]) { int i; mysrand(time(NULL)); for(i=0;i<10;i++) { printf("%ld\n",myrand()); } exit(0); }
07. december 2003 - 21:53
#7
Den returnerer 0 .. 2147483646
07. december 2003 - 21:53
#8
OK ?
07. december 2003 - 21:58
#9
tusind tak... :)
Kurser inden for grundlæggende programmering