int RandInt(int a, int b){
return (rand()%b+a);
}
我想生成随机字符值,所以我称之为
char asciiValue = RandInt(65, 90);
但我的输出并不是我所期望的......我做错了什么?
- 编辑为randint调用输入了错误的值,我的错误
答案 0 :(得分:6)
如果您修改RandInt(low, high)
函数以返回低和高之间的随机数,可能会更好。
int RandInt(int low, int high) {
return low + rand() % (high - low + 1);
}
这样,获得小写字符将非常简单:
const char c = RandInt('a', 'z');
答案 1 :(得分:3)
RandInt(90, 90)
将返回一个介于90和179之间的整数。值90代表一个'Z',你可以从那里得到一个值。
你要去哪个范围?
大写字母为RandInt(65, 26)
。这是你期望的吗?
答案 2 :(得分:2)
Rand是一个随机数生成器,周期为2到32次幂,用于返回0到RAND_MAX范围内的连续伪随机数。
如果你在rand()%b + a之前使用randomize(),那么每次编译代码时输出都会不同,因为randomize()用随机值初始化随机数生成器。
当你传递randint(65,90)时,每当你得到一个符号作为输出时。
这里实际做的是
1)RAND()%B
这里rand()将生成一个0到90之间的随机数,因为你将a的值传递为90.
2)然后它会在这里添加一个等于65的值。你传递的值。
然后无论发现什么计算值,它都将被输出到屏幕上。
这对您有所帮助。