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'. 用数组来存储字符串. ...
随机推荐
- 祖先元素transform非none时在Iphone6上引起后代fixed/absolute元素的怪异表现及解决方案
如题,祖先元素transform非none时,记录一下Iphone6中引起后代元素fixed参考视图怪异表现和解决方案. 层叠关系及参考视图 层叠上下文是HTML元素的三维概念,这些HTML元素在一条 ...
- JavaScript正则进阶之路——活学妙用奇淫正则表达式
原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同进步,以学习者的身份写博客,记录点滴. 有些童鞋肯定 ...
- 来扯点ionic3[3] 页面的生命周期事件,也就是凡间所说的钩子
首先要做一个诚挚的道歉,作为大四狗,因为升学的事情,断更两个月,所以要感谢各位仁慈的读者没有脱粉(好像也就50个粉丝).这一节,我们延续上一节制作的页面,来讨论声明周期钩子的事情. 以我的经验来看,多 ...
- c++实现状态模式
实验:用Java代码模拟实现课堂上的"银行账户"的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态和行为的变化. 由于是c++,不像java那么灵活,所以类的调用方 ...
- webpack 4.0 配置方法以及错误解决
选取一个空目录来试验 全局安装webpack4.1之后 创建目录 mkdir webpacktest && cd webpacktes 初始化package.json npm init ...
- 攻防世界——stegano
分析 1. 一个pdf,里边都是英文. 打开pdf "ctrl + F",检查flag 然活这里边直接告诉你,flag不在这里,一般都这么说了那就是真的不在了. 2. txt打开, ...
- golang 中 sync.Mutex 的实现
mutex 的实现思想 mutex 主要有两个 method: Lock() 和 Unlock() Lock() 可以通过一个 CAS 操作来实现 func (m *Mutex) Lock() { f ...
- Java学习day11
如果程序出现了问题,我们没有做任何处理,JVM会做默认处理,即:把异常的名称,原因和位置等信息输出在控制台,程序停止执行 一个简单的检测集合对象是否含有某元素,有就再添加一个某元素 public cl ...
- 进阶版css点击按钮动画
1. html <div class="menu-wrap"> <input type="checkbox" class="togg ...
- Ubuntu 20.0.4 安装 NVIDIA N卡 驱动 画面撕裂 解决方法
电脑 联想 Y7000 系统 Ubuntu 20.0.4 显卡 NVIDIA 1050TI 以下操作需要管理员权限 编辑文件,如果没有新建一个 /lib/modprobe.d/nvidia-graph ...