最近刚学了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 语言彩票选号的更多相关文章

  1. iOS彩票项目--第三天,搭建竞技场和发现,搭建幸运选号和我的彩票界面

    一.竞技场搭建--UISegmentedControl的使用 // 重写 自定义控制器的view - (void)loadView { UIImageView *imgView = [[UIImage ...

  2. Lamda一行代码实现"36选7"随机自动选号

    南粤风采36选7是广东的一种彩票玩法.非常简单的从1-36个数字选7个. 今天在同事面前炫耀了一把,只用一行Lamda代码实现随机自动选号 Enumerable.Range(, ).Select(x ...

  3. Js随机数--网页版的体育彩票选号器

    <script> function Quickpick() { var ball for( ball = 0; ball < 5; ball++) { this[ball] = pa ...

  4. 【转】c语言中的#号和##号的作用

    @2019-01-25 [小记] c语言中的#号和##号的作用

  5. C# 5 break continue 球员成绩 彩票 选班长

        二.新课: 1.break与continue. 这两个关键字一般放在循环的花括号里面使用. break--结束整个循环. continue--结束本次循环,进入下次循环. break的案例: ...

  6. C语言进阶—— 单引号和双引号14

    单引号和双引号 C语言中的单引号用来表示字符字面量 C语言中的双引号用来表示字符串字面量 ‘a’表示字符字面量,在内存中占用一个字节,'a'+1表示'a'的ASCII码加1,结果为'b' " ...

  7. 机器学习的5种语言(选自info world)

    摘要:机器学习目前炙手可热,本文搜集了Java.Python以及go等编程语言中常见且实用的开源机器学习工具,对机器学习感兴趣的开发者或者准备和机器学习打交道的数据科学家们不能错过了 [编者按] 机器 ...

  8. C语言 · 彩票

    算法提高 彩票   时间限制:1.0s   内存限制:256.0MB      问题描述 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1.每张彩票上印有7个各不相同的号码,且这些号码的取值 ...

  9. C语言中 单引号与双引号的区别

    在C语言中,字符用单引号,字符串用双引号.在c1='a';中,'a'是字符常量,必须用单引号."a"表示字符串,包含两个字符,一个是'a',一个是'\0'. 用数组来存储字符串. ...

随机推荐

  1. 《剑指offer》面试题1:赋值运算函数

    面试题1:赋值运算函数 题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数 class CMyString { public: CMyString(char* pData = NU ...

  2. ionic3 教程(五)基本的网络请求

    链接: ionic3教程(一)安装和配置 ionic3教程(二)登录页制作 ionic3教程(三)设置页制作 ionic3教程(四)安卓硬件返回键处理ionic3 教程(五)基本的网络请求 这是最后一 ...

  3. DOM 小总结

    DOM 是什么 文档对象模型,是针对 HTML 和 XML 文档的一个 API (应用程序编程接口), 描绘了一个层次化的节点树. D: document 当 web 浏览器浏览一个页面的时候,DOM ...

  4. ubantu系统之 虚拟机不识别usb接口

    1. 下载和 virtualbox 同一版本的 Orcale VM VirtualBox Extension Pack 并在ubantu上安装:2. 启动虚拟机,选中菜单栏中"设置" ...

  5. javaScript设计模式:发布订阅模式

    发布订阅模式的思想是在观察者模式的基础上演变而来,在观察者模式中客户端监听到对象某个行为就触发对应任务程序.而在发布订阅模式中依然基于这个核心思想,所以有时候也会将两者认为是同一种设计模式.它们的不同 ...

  6. spatialite-tools 安装

    spatialite-tools 安装 官网 https://www.gaia-gis.it/fossil/spatialite-tools/index 下载地址 https://www.gaia-g ...

  7. 基础设施即代码(IAC),Zalando Postgres Operator 简介

    Postgres Operator 在由 Patroni 提供支持的 Kubernetes (K8s) 上提供易于运行的高可用性 PostgreSQL 集群.它仅通过 Postgres 清单 (CRD ...

  8. Selenium3自动化测试【27】Frame的操作

    本篇文章内容摘要 " 讲解Python3+Selenium3如何处理Frame窗体" 同步视频知识与系列知识内容,可关注:[公众号]:柒哥测试:[WX]:Lee-890;[视频号] ...

  9. border 流光高光

    <template> <div>   <div class="conic"></div> <div class="c ...

  10. 【dp/贪心】CF 780 (Div. 3), problem: (C) Get an Even String

    Problem - C - Codeforces 难度: 1300 input 6 aabbdabdccc zyx aaababbb aabbcc oaoaaaoo bmefbmuyw output ...