c语言如何生成多位数(以三位数为例)的十六进制数

通过rand() srand()生成的数字过小无法满足转化为三位及以上位十六进制数的条件,请问还有没有其他方法能够实现这个想法

你可以做个映射,把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;
}

你的意思是rand生成的数太小吗