如何生成由4个十六进制数字组成的代码? 代码符合以下条件: - 第一个和第三个数字是相同的 - 第二位是偶数 - 第三位数大于9 - 第四位是随机的(没有条件)
答案 0 :(得分: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&#39;代码&#39;,因为第三个代码始终与第一个相同。
要生成0-15之间的随机数,请使用random()%16
我使用类型int
来存储这些,这可能无关紧要。打印时,我使用%X
而不是更常见的%d
,因为%X
会以十六进制打印。我打印四个十六进制数字(当然重用code1)。
最后一部分是满足您的条件。
code1是一个0-5范围内的随机数,并加10(使其大于9)
code2是random()%8*2
,它生成0-7范围内的随机数,然后将其加倍(使其均匀)
code4只是0-15的随机数
您没有解释如何处理生成的代码,所以我只是打印它。如果需要将其打印成字符串以便进一步工作,可以使用sprintf
函数。