可能重复:
How to generate a random number from within a range - C
如何生成介于1和N-1之间的随机数,其中N是用户打入的数字?
到目前为止,我的代码是:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int number = 0; //number variable
printf("This program will ask you for a number, an integer, and will print out a random number from the range of your number 1, to N-1.");//output that explains the program's purpose and use to the user.
//gets the input
fgets(buffer, sizeof(buffer), stdin);
sscanf(buffer, "%d", &number); //gets the input and stores it into variable number
return (0);
}
答案 0 :(得分:1)
答案 1 :(得分:1)
根据您希望数字的“随机”方式,您可以使用标准libc中的rand()
函数。此函数将生成介于0和RAND_MAX之间的数字。然后,您可以使用模运算获得良好范围内的结果。
请注意,此生成器(LCG)既不也适用于加密应用程序或科学应用程序。
如果您想要更合适的发电机,请查看Mersenne Twister等发电机(但仍然不是密码固定器)。
答案 2 :(得分:1)
尝试这样的事情: -
unsigned int
randomr(unsigned int min, unsigned int max)
{
double x= (double)rand()/RAND_MAX;
return (max - min +1)*x+ min;
}
点击此链接: - http://c-faq.com/lib/randrange.html
答案 3 :(得分:0)
您需要查看rand。一点点数学,你有一个解决方案。