0

如何生成由 4 个十六进制数字组成的代码?代码满足以下条件: -第一位和第三位相同 -第二位为偶数 -第三位大于9 -第四位随机(无条件)

4

1 回答 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 回答