用C语言模拟双色球开奖

用c语言模拟双色球开奖

问题描述:

/* 双色球是中国福利彩票目前最火的一种玩法。而彩票是以抽签给奖方式进行筹款或敛财所发行的凭证,并非是赌博,每天都有上亿的彩民关注着双色球的开奖结果。其彩票投注区分为红色球号码区和蓝色球号码区,每注投注号码由6个红色球和1个蓝色球号码组成。红色球号码从1~33中选择,蓝色球号码从1~16中选择每期开出的红色球号码不能重复,但是蓝色球可以使红色球中的一个。案例要求编写程序模拟双色球的开奖过程,由程序随机产生6个红色球号码和1个蓝色球号码并把结果输出到屏幕上。*/
 

思路分析:

  1. 用时间作为随机数种子,把生成的随机数放到一维数组中
  2. 当i小于等于6时,需要重复判断第i个数字是否与先前的数字重合,如果重合,重新生成一个随机数,直到不相同为止;
  3. 当i等于7时随机生成一个1~16的数字存入数组,把7位数的数组输出,就生成了一个双色球号码;

代码明细:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 int  scsjs();
int main()
{int i,j,a[100];
 srand((unsigned  int )time(NULL)) ;    //用时间做随机数的种子
 for(i=0;i<7;i++)
 {
	 if(i<=6)
	 {	 a[i]=scsjs();
	 for(j=0;j<i;j++)
		 if(i>0&&a[i]==a[j])           //判断第i个数字是否与之前的数字重合
			 while(a[i]==a[j])         // 如果重合,重新生成随机数
				a[i]= scsjs();
	 }
	 else
		 a[i]=rand()%16+1;                //取模运算
 }
for(i=0;i<7;i++)
	printf("%d   ",a[i]);
return 0;
}



  int  scsjs()
  {
		  return rand()%33+1;   
  }


 运行结果:

猜你喜欢

转载自blog.csdn.net/qq_41911158/article/details/86562216