双色球
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;elsearr[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;
}