双色球规则:在1-32区间内取6个红球且不能重复;在1-16区间内取1个蓝球,蓝球数字可与红球重复。
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
//导入头文件
int main()
{
srand(time(NULL));//获取随机数种子
int arr[6] = { 0 };//定义数组,把所有值设为0
int num=0;//接收rand出来的随机数
int k=0;
int j;
for (int i = 0; i < 6; i++)
{
num = rand() % 32 + 1;//得到1-32的值
for (j = 0; j < k; j++)
{
if (num == arr[j])//判断是否重复
{
i--;//执行一次程序赋值就有一次i++,为使程序执行多次且有效执行次数为6次(生成6个不重复的随机数),这里设置一个i--
break;
}
}
if (j == k)//生成的数与数组已有数元素没有重复
{
arr[k] = num;//对进行赋值
k++;
}
}
for (int i = 0; i < 6; i++)//遍历生成数组元素
{
printf("%d ", arr[i]);
}
printf("+%d\n", rand() % 16 + 1);//可重复蓝球
return 0;
}
初学代码,请大神指正