通过rand() srand()生成的数字过小无法满足转化为三位及以上位十六进制数的条件,请问还有没有其他方法能够实现这个想法
2条回答 默认 最新
- _GX_ 2021-12-22 23:52关注
你可以做个映射,把
rand()
函数返回值的范围映射到你想要的数值范围,比如下面例子是映射到[10,20]
范围内的随机数#include <stdio.h> #include <stdlib.h> #include <time.h> int my_rand(int a, int b) { return a + (int)((b - a) * (double)rand() / RAND_MAX + 0.5); } int main() { srand(time(NULL)); for (int i = 0; i < 10; i++) printf("%d ", my_rand(10, 20)); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报