C 使用rand()生成除数字零以外的随机数

C 使用rand()生成除数字零以外的随机数,c,random,C,Random,我想用rand()方法生成1到25之间的随机数。 但我只知道如何以这种方式生成随机数,默认情况下包括数字零: int r = rand() % 26 /* random int between 0 and 25 */ 有人吗?谢谢。非常简单 int r = 1 + rand() % 25 /* random int between 1 and 25 */ 但是你应该用这个 int r = (int)(1.0 + 25.0 * rand() / RAND_MAX) 如评论中所述,第二种方法

我想用rand()方法生成1到25之间的随机数。
但我只知道如何以这种方式生成随机数,默认情况下包括数字零:

int r = rand() % 26 /* random int between 0 and 25 */
有人吗?谢谢。

非常简单

int r = 1 + rand() % 25 /* random int between 1 and 25 */
但是你应该用这个

int r = (int)(1.0 + 25.0 * rand() / RAND_MAX)

如评论中所述,第二种方法是生成随机数的更稳健的方法。请参见此方法。

此方法可能不起作用,具体取决于对一致性的严格要求。@void\ptr请详细说明。rand()生成器和%25不对齐。如果您想要生成公平数字,这是一个重要的技术问题。为什么
(1.0+RAND_MAX)