双色球
1.案例描述
双色球是中国福利彩票目前的一种玩法,并非赌博,其彩票投注区分为红色球号码区和蓝色球号码区,每注投注号码由6个红色球和1个蓝色球号码组成。红色球号码从1-33中选择,蓝色球号码从1-16中选择。每期开出的红色球号码不能重复,但是蓝色球号码可以是红色球号码中的一个。案例要求表写程序模拟双色球的开奖过程,由程序随机产生6个红色球号码和1个蓝色球号码,并把结果输出到屏幕上。
2.案例设计
1.创建一个长度为7的数组,用于存放红球和蓝球
2.随机生成红球放入数组,并判断数组中是否已经存在该数
3.重复步骤2,直到数组中已经存放6个红球
4.随机生成蓝球,并放到数组的最后一个位置
5.输出结果
3.代码实现
//双色球
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define len 7
int main(){
int isExists(int *p,int num);
int arr[len],red,blue,i=0;
srand((unsigned)time(NULL));//刷新随机数种子
while(arr[len-2]==0){//确保最后一个红球不为零,退出循环
red = rand()%33+1;
if(isExists(arr,red))//数组中存在该数,重新刷新随机数
continue;
else
arr[i++]=red; //数组中不存在该数则添加到该数中
}
blue = rand()%16+1;
arr[len-1] = blue; //生成蓝球并添加
printf("红球:"); //输出结果
for(i=0;i<len-1;i++)
printf("%d ",arr[i]);
printf("蓝球:%d\n",arr[len-1]) ;
return 0;
}
int isExists(int *p,int num){
for(int i=0;i<len;i++)
if(p[i]==num)//判断数组中是否含有num有返回1,无返回0.
return 1;
return 0;
}