题目:随机获取双色球中奖号码
红色球: 6个,取值范围1~31,(六个球不允许重复)
蓝色球: 1个,取值范围1~16
代码解析如下
题目要求输出随机双色球号码,其中蓝色球与红色球的范围不一样,所以需要分别获取随机数,最后合并输出,也可以创建一个新的数组存储红蓝所有数字,然后遍历,我这是直接输出就好。
#include <stdio.h>
//随机数需要引入的头文件
#include <stdlib.h>
#include <time.h>
int main()
{
//定义红色球6位数字
int red[6] = {0};
//定义蓝色球数字默认为0
int blue = 0;
int i = 0;
//定义随机数种子
srand(time(NULL));
//给红色球赋值
while(i<6)
{
//获取一个随机数 范围 1~31
int num = rand() % 31 + 1;
//唯一标识为1
int bool = 1;
//遍历红色球数组,判断数组内是否已经存在数字num
for(int j = 0;j < 6; j++)
{
if(num == red[j])
{
//如果存在,修改唯一标识为0
bool = 0;
}
}
//判断唯一标识是否更改,若未更改,给数组red赋值
if(bool)
{
red[i] = num;
//赋值一次给i加1,当i赋值6次后,表示赋值完成,退出循环
i++;
}
}
//给蓝色球设置随机数 范围1~16
blue = rand() % 16 + 1;
//输出最终数字串
printf("您抽取的双色球号码为\t%d\t",blue);
for(int i = 0;i<6;i++)
{
printf("%d\t",red[i]);
}
return 0;
}
最终结果可以获得一个七位数字