如何生成由 4 个十六进制数字组成的代码?代码满足以下条件: -第一位和第三位相同 -第二位为偶数 -第三位大于9 -第四位随机(无条件)
问问题
310 次
1 回答
1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int code1, code2, code4;
srand(time(NULL)); // set random seed
code1 = random()%6+10; // random between 10 and 15
code2 = random()%8*2; // even
code4 = random()%16; // random between 0-15
printf("%X%X%X%X\n",code1, code2, code1, code4);
}
这里有几点需要注意。第一个是我生成 3 个“代码”,因为第三个总是与第一个相同。
要生成 0-15 的随机数,请使用random()%16
我正在使用类型int
来存储这些,这可能无关紧要。打印时,我使用%X
而不是更常见的%d
,因为%X
它将以十六进制打印。我打印四个十六进制数字(当然重用 code1)。最后一部分是满足你的条件。code1 是 0-5 范围内的随机数,并在其上加 10(使其大于 9)
code2 是random()%8*2
在 0-7 范围内生成随机数,然后将其加倍(使其均匀) code4 只是一个随机数数字从 0-15
您没有解释如何处理生成的代码,所以我只是打印了它。sprintf
如果您需要将其打印成字符串以供进一步工作,您可以使用该函数。
于 2012-10-20T10:21:41.770 回答