闲来无事,想着写一个双色球生成代码,顺便温习一下随机数产生和排序算法。
codeblock 17.12编译通过并可运行,希望大家中500W。 :)
双色球每注由6颗红球和1颗蓝球组成,其中6颗红球的取值范围是[1, 33]不能重复,蓝球取值范围是[1, 16],可以和红球有重复。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#define RED_BALL_NUM 6
#define RED_BALL_VAL_MIN 1
#define RED_BALL_VAL_MAX 33
#define BLUE_BALL_NUM 1
#define BLUE_BALL_VAL_MIN 1
#define BLUE_BALL_VAL_MAX 16
#define TRUE 1
#define FALSE 0
typedef unsigned int u32;
static u32 GenRandValByRangLimit(u32 MinVal, u32 MaxVal)
{
return (rand() % (MaxVal - MinVal) + MinVal + 1);
}
static u32 CheckValExistInArry(u32 Val, u32 *Arry, u32 ArrySize)
{
u32 i;
for(i = 0; i < ArrySize; i++)
{
if(Val == Arry[i])
{
return TRUE;
}
}
return FALSE;
}
static void So