C语言随机数函数 C语言不同的存储类型 C语言掷骰子程序 C语言随机数函数 /* rand0.c –– produces random numbers */ /* uses ANSI C portable algorithm */ static unsigned long int next = 1; /* the seed */ unsigned int rand0(void) { /* magic formula to generate pseudorandom number */ next = next * 1103515245 + 12345; return (unsigned int) (next/65536) % 32768; } /* r_drive0.c -- test the rand0() function */ /* compile with rand0.c */ #include <stdio.h> extern unsigned int rand0(void); int main(void) { int count; for (count = 0; count < 5; count++) printf("%d\n", rand0()); return 0; } /* s_and_r.c -- file for rand1() and srand1() */ /* uses ANSI C portable algorithm */ static unsigned long int next = 1; /* the seed */ int rand1(void) { /* magic formula to generate pseudorandom number */ next = next * 1103515245 + 12345; return (unsigned int) (next/65536) % 32768; } void srand1(unsigned int seed) { next = seed; } /* r_drive1.c -- test rand1() and srand1() */ /* compile with s_and_r.c */ #include <stdio.h> #include <stdlib.h> extern void srand1(unsigned int x); extern int rand1(void); int main(void) { int count; unsigned seed; printf("Please enter your choice for seed.\n"); while (scanf("%u", &seed) == 1) { srand1(seed); /* reset seed */ for (count = 0; count < 5; count++) printf("%d\n", rand1()); printf("Please enter next seed (q to quit):\n"); } printf("Done\n"); return 0; } C语言不同的存储类型 C语言掷骰子程序