/*********************************\
* 功能:随机生成一张彩票,可 *
* 选双色球和打乐透 *
* 2014/6/11 codor beta1.0 *
* *
\*********************************/
/*
* 2014/6/11 增加冒泡排序,使输出由小到大
* 2014/6/12 优化随机生成彩票函数
* */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void lottery(int,int,int,int);
void welcome(); //欢迎界面
void bye(); //退出界面
void stop_it();//暂停函数
int main(){
int boo = 0,option = 0;
int red_ball = 0, blue_ball = 0;
int red_num = 0, blue_num = 0;
welcome();
printf("请输入您的选择:");
scanf("%d",&boo);
if(boo == 0){
bye();
return 0;
}
while(1){
system("clear");
printf("********************************************\n");
printf("********************************************\n");
printf("*********1、黄大师选出的双色球 *************\n");
printf("*********2、白小姐偷来的大乐透 *************\n");
printf("*********0、退出程序 *************\n");
printf("********************************************\n");
printf("********************************************\n");
printf("请选择:");
scanf("%d",&option);
switch(option){
case 1:lottery(6,1,33,16);stop_it();break;//双色球规则
case 2:lottery(5,2,35,12);stop_it();break;//大乐透规则
case 0:bye();return 0;
}
}
return 0;
}
void welcome(){
system("clear");
printf("********************************************\n");
printf("********************************************\n");
printf("********************************************\n");
printf("**********欢迎使用彩票生成工具!************\n");
printf("********************************************\n");
printf("**********继续请输入1,退出请输入0**********\n");
printf("********************************************\n");
printf("**********注:谨作娱乐,当真不谢************\n");
printf("********************************************\n");
printf("********************************************\n");
}
void bye(){
system("clear");
printf("********************************************\n");
printf("********************************************\n");
printf("*****************Bye Bye !!*****************\n");
printf("********************************************\n");
printf("********************************************\n");
}
void stop_it(){
char stoping[4];
printf("返回请输入任意数字:");
scanf("%s",stoping);
}
void lottery(int red_ball,int blue_ball,int red_num,int blue_num){
int i = 0,j = 0, tmp = 0;
int red[red_ball], blue[blue_ball];
srand(time(0));
/*
for(i = 0;i < red_ball;i++){
red[i] = rand() % red_num + 1;
for(j = 0;j < i;j++){
if(red[i] == red[j]){
red[i] = rand() % red_num + 1;
j = -1;
}
}
}*/
do{
red[i] = rand() % red_num + 1;
for(j = 0;j < i;j++){
if(red[i] == red[j])
break;
}
if(i == j)
i++;
}while(i <= red_ball);
for(i = 0;i < red_ball;i++){
for(j = 0;j <red_ball - i - 1;j++){
if(red[j] > red[j+1]){
tmp = red[j];
red[j] = red[j+1];
red[j+1] = tmp;
}
}
}
for(i = 0;i < blue_ball;i++){
blue[i] = rand()% blue_num + 1;
}
if(blue_ball == 2){
while(1){
if(blue[0] == blue[1])
{
blue[0] = rand()%blue_num + 1;
continue;
}
else {
if(blue[0]>blue[1]){
tmp = blue[0];
blue[0] = blue[1];
blue[1] = tmp;
break;
}
break;
}
}
}
for(i = 0; i < red_ball;i++){
printf("%d ",red[i]);
}
if(blue_ball == 2)
printf(": %d %d\n",blue[0],blue[1]);
else
printf(": %d\n",blue[0]);
}