我有一段代码给我带来了一些麻烦并且令人困惑。
这是一段代码...
int r = rand() % 100;
printf("Random number: %u", r);
为什么每次都打印7?根据这本书,它应该打印任何数字 0-100 我相信......我错了吗?
我有一段代码给我带来了一些麻烦并且令人困惑。
这是一段代码...
int r = rand() % 100;
printf("Random number: %u", r);
为什么每次都打印7?根据这本书,它应该打印任何数字 0-100 我相信......我错了吗?
你必须先播种:
srandom(time(NULL));
实际上最好只使用arc4random:
int r = arc4random() % 100;
printf("Random number: %u", r);
随机数是伪随机的。为了使它们看起来是随机的,它们会根据您的设计在任意时间播种。如果您希望播种和“随机”数字生成同时发生,请arc4random
改用它,这也提供了其他好处。