c 语言彩票选号
最近刚学了c语言,就做了个彩票选号程序练手玩玩,做的不好请见谅

1.分为前区(1-35)和后区(1-12)号码
2.先循环随机前区号在循环后区号
3.生成随机时数判断是否有重复值,和之前5期是否出现过
4.有重复值或出现过都重新随机
5.排序输出
文件:daletou.c
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<windows.h>
#include "5.h" // 大乐透选号
// 前区01—35共三十五个号码组成,后区号码由01—12
int getRand(int *,int,int);
int * sort(int *,int);
void printNum();
int main()
{
int i,num;
time_t t;
srand((unsigned int)time(&t)); printf("请输入要打印的个数:");
scanf("%d",&num);
for(i=0;i<num;i++){
printNum();
}
system("pause");
return 0;
}
// 打印号码
void printNum(){
int i,frontArea[5],backArea[2]; //获取前区数字
for(i=0;i<5;i++)
{
frontArea[i] = getRand(frontArea,35,5);
// printf("%d ",frontArea[i]);
}
// 获取后区数字
for(i=0;i<2;i++)
{
backArea[i] = getRand(backArea,12,2);
// printf("%d ",backArea[i]);
}
// 前区数字排序
int *arrf = sort(frontArea,5);
//将文字设置为红色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xe);
for(i=0;i<2;i++)
{
printf("%d ",arrf[i]);
}
//将文字设置为白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x7);
printf("\n");
}
// 获取随机数
int getRand(int *n,int max,int len)
{
int ret = 0;
int j;
int k = 0;
int *history = len == 5?previousPeriod5:previousPeriod2;
// printf("index:%d ",i);
ret = rand()%(max+1);
ret = ret == 0 ? 1:ret;
for(j=0;j<len;j++)
{
// 判断当前数是否在往期5期存在
if(exist(ret,len) == 1){
k = 1;
break;
}
// 是否有相同的数
if(ret !=0 && ret == n[j])
{
k = 1;
break;
}
}
if(k == 1){
getRand(n,max,len);
}else{
return ret;
}
}
// 排序
int * sort(int *a,int len)
{
// static int a[] = {2,1,3,69,7,2,74};
int i,j;
// int arrlen = sizeof(a)/sizeof(a[0]);//获取数组长度 只能用于static或全局数组 因为传入的数组是个指针
for(i=0;i<len;i++)
{
for(j=i;j<len;j++){
if(a[i] > a[j]){
a[i] = a[i]^a[j];
a[j] = a[i]^a[j];
a[i] = a[i]^a[j];
}
}
}
return a;
}
文件:5.h
// 往期号码
int previousPeriod5[] = {
1,2,12,15,23,
5,16,21,23,34,
9,17,19,20,25,
1,13,18,29,35,
1,16,17,19,33,
};
int previousPeriod2[] = {
4,6,
7,10,
1,9,
4,9,
5,6,
};
int exist(int,int);
// 判断当前数是否在往期5期存在 k=1存在
int exist(int ret,int len)
{ int i,p_len,k=0;
int *arr;
if(len == 5){
p_len = sizeof(previousPeriod5)/sizeof(previousPeriod5[0]);
arr = previousPeriod5;
}else{
p_len = sizeof(previousPeriod2)/sizeof(previousPeriod2[0]);
arr = previousPeriod2;
}
for(i=0;i<p_len;i++)
{
if(ret == arr[i]){
k = 1;
}
}
return k;
}
运行:

c 语言彩票选号的更多相关文章
- iOS彩票项目--第三天,搭建竞技场和发现,搭建幸运选号和我的彩票界面
一.竞技场搭建--UISegmentedControl的使用 // 重写 自定义控制器的view - (void)loadView { UIImageView *imgView = [[UIImage ...
- Lamda一行代码实现"36选7"随机自动选号
南粤风采36选7是广东的一种彩票玩法.非常简单的从1-36个数字选7个. 今天在同事面前炫耀了一把,只用一行Lamda代码实现随机自动选号 Enumerable.Range(, ).Select(x ...
- Js随机数--网页版的体育彩票选号器
<script> function Quickpick() { var ball for( ball = 0; ball < 5; ball++) { this[ball] = pa ...
- 【转】c语言中的#号和##号的作用
@2019-01-25 [小记] c语言中的#号和##号的作用
- C# 5 break continue 球员成绩 彩票 选班长
二.新课: 1.break与continue. 这两个关键字一般放在循环的花括号里面使用. break--结束整个循环. continue--结束本次循环,进入下次循环. break的案例: ...
- C语言进阶—— 单引号和双引号14
单引号和双引号 C语言中的单引号用来表示字符字面量 C语言中的双引号用来表示字符串字面量 ‘a’表示字符字面量,在内存中占用一个字节,'a'+1表示'a'的ASCII码加1,结果为'b' " ...
- 机器学习的5种语言(选自info world)
摘要:机器学习目前炙手可热,本文搜集了Java.Python以及go等编程语言中常见且实用的开源机器学习工具,对机器学习感兴趣的开发者或者准备和机器学习打交道的数据科学家们不能错过了 [编者按] 机器 ...
- C语言 · 彩票
算法提高 彩票 时间限制:1.0s 内存限制:256.0MB 问题描述 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1.每张彩票上印有7个各不相同的号码,且这些号码的取值 ...
- C语言中 单引号与双引号的区别
在C语言中,字符用单引号,字符串用双引号.在c1='a';中,'a'是字符常量,必须用单引号."a"表示字符串,包含两个字符,一个是'a',一个是'\0'. 用数组来存储字符串. ...
随机推荐
- Cadence 错误合集
1.原理图DRC出现如下错误"Duplicate Pin Name "GND" found on Packag" 解决方案:原因是元件引脚重复定义,可以进行重新 ...
- 前端每日实战:96# 视频演示如何用纯 CSS 和 D3 创作一艘遨游太空的宇宙飞船
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/oMqNmv 可交互视频 此视频是可 ...
- 如何跨线程访问Winform中的UI元素
如何跨线程访问Winform中的UI元素 假如制作一个Socket聊天应用程序,很可能会用到多线程: 例如为Receive方法开辟单独一个线程,例如为Receive方法开辟单独一个线程(后台运行的线程 ...
- JDBC/Mybatis连接数据库报错:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
造成这个的原因是maven导入MyBatis的时候会自动导入最新版本的8.0.11,然后8.0.11采用了新驱动,之前版本会报错. 当我们使用高版本的MySQL驱动时可以在获取数据库的连接getCon ...
- 一个抽取百度定位的教程(下载百度地图Demo+配置+抽取)
效果展示 已经下载Demo的可以直接到第五步,已经配置好的并可以运行的可以直接到第七步. 1.在浏览器搜索 " 百度定位API ",点击下面这个链接 2.翻到最下面找到并点击 &q ...
- java基础-多线程-线程组
线程组 * Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制. * 默认情况下,所有的线程都属于主线程组. * public fi ...
- HTML2Canvas使用总结
1:指定要生成的DOM元素id 2: 某些图片动态赋值src的url或者base64可能不会被立即渲染:可以设置一个定时器解决 3:可以调用次方法得到的canvas元素转一下格式 png/jpg 4: ...
- dev分支代码覆盖master分支代码
将develop分支上的代码完全覆盖master分支, 1. 切换到master分支 git checkout master 2. 执行以下命令 git reset --hard origin/dev ...
- HTTP长连接和短连接及应用情景
HTTP短连接 HTTP/1.0中默认使用短连接, 客户端和服务器进行一次HTTP操作, 就需要建立一次连接, 任务结束连接也关闭. 当客户端浏览器访问的web网页中包含其他的web资源时, 每遇到一 ...
- el-menu菜单 -- unique-opened 子菜单唯一性失效
总结: 点击的是 el-sub-menu . 所以 el-sub-menu 的唯一性是必须的.否则 unique-opened 属性不生效