体彩 超级大乐透(C++) 测测你的中奖概率

随机购买n注彩票,或者手动输入彩票数字,看看你的幸运值如何?
对体彩超级大乐透的前区5个数字和后区2个数字进行区分,前区(1-35),后区(1-12),避免错误输入,避免输入数字超过范围,避免前区或后区中有重复数字,判断获奖情况。

在这里插入图片描述

代码如下

#include <iostream>
#include<ctime>
#include<stdlib.h>
#include<vector>
using namespace std;//生成随机数
void produceNum(vector<int> &A);
//检测数字是否存在
bool checkSamenum(vector<int>A,int temp);
//打印数字
void printNum(vector<int> A);
//检测单注前后区中奖数字个数
vector<int> correctNum(vector<int> predictNum,vector<int> chooseNum);
//选择购买数字
void chooseNum(vector<vector<int>>&buyNum);
//保存所有中奖情况
vector<vector<int>> winSum(vector<int> &winNum,vector<vector<int>> buyNum);
//获奖情况
void awards(vector<vector<int>> &winSum);
//随机购买数字
void randomBuyNum(vector<vector<int>>&buyNum);void produceNum(vector<int> &A){//srand((unsigned)time(NULL));int a = 1, b = 35,c=12;bool label=false;bool label1=false;for(int i=0;i<5;i++){// 生成[a,b]的随机数int temp=(rand() % (b-a+1)) + a;if(i==0){A.push_back(temp);}else{label=checkSamenum(A,temp);while(label==true){temp=(rand() % (b-a+1)) + a;//cout<<"same number: "<< temp<<endl;label=checkSamenum(A,temp);}A.push_back(temp);}}//printNum(storagea);//    cout<<"second area"<<endl;vector<int> B;for(int j=0;j<2;j++){int temp1=(rand() % (c-a+1)) + a;if(j==0){B.push_back(temp1);}else{label1=checkSamenum(B,temp1);while(label1==true){temp1=(rand() % (c-a+1)) + a;//cout<<"same number2: "<< temp1<<endl;label1=checkSamenum(B,temp1);}B.push_back(temp1);}}A.push_back(B[0]);A.push_back(B[1]);//cout<<"size:"<<storageb.size()<<endl;//cout<<"<<<<winning number>>>>"<<endl;printNum(A);}
bool checkSamenum(vector<int>A,int temp){int label=false;int size=A.size();for(int i=0;i<size;i++){if(A[i]==temp){label=true;return label;}}return label;
}
void printNum(vector<int> A){for(vector<int>::iterator it=A.begin();it!=A.end();it++){cout<<*it<<" ";}cout<<endl;}
vector<int> correctNum(vector<int> predictNum,vector<int> chooseNum){vector<int> rightSum;int corct1=0,corct2=0;for(int i=0;i<5;i++){for(int j=0;j<5;j++){if(chooseNum[j]==predictNum[i]){corct1+=1;}}}for(int i=5;i<7;i++){for(int j=5;j<7;j++){if(chooseNum[j]==predictNum[i]){corct2+=1;}}}rightSum.push_back(corct1);rightSum.push_back(corct2);return rightSum;}void randomBuyNum(vector<vector<int>>&buyNum){cout<<"random buy lottery tickets"<<endl;cout<<"How many lottery tickets do you want to buy? (0~100)"<<endl;int totalNum;cin>>totalNum;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number :"<<endl;cin>>totalNum;}while(totalNum<0||totalNum>100){cout<<"wrong number,please rechoose lottery tickets: (0~100)"<<endl;cin>>totalNum;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number :"<<endl;cin>>totalNum;}}cout<<"the number you buy:"<<endl;for(int i=0;i<totalNum;i++){vector<int> single;produceNum(single);buyNum.push_back(single);}//    for(int i=0;i<totalNum;i++){
//        printNum( buyNum[i]);
//    }}void chooseNum(vector<vector<int>>&buyNum){cout<<"How many lottery tickets do you want to buy (0~30) ?"<<endl;int totalNum;cin>>totalNum;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~30)"<<endl;cin>>totalNum;}while(totalNum<0||totalNum>30){cout<<"wrong number,please rechoose lottery tickets: "<<endl;cin>>totalNum;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~30)"<<endl;cin>>totalNum;}}for(int i=0;i<totalNum;i++){cout<<"choose the "<<i+1<<" ticket"<<endl;vector<int> single;bool label=false;cout<<"cin 5 first number (1~35)"<<endl;for(int i=0;i<5;i++){int d=0;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35)"<<endl;cin>>d;}if(i==0){while(d<0||d>35){cout<<"wrong number,please choose again a"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35)!"<<endl;cin>>d;}}single.push_back(d);}else{while(d<0||d>35){cout<<"wrong number,please choose again "<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35) "<<endl;cin>>d;}}label=checkSamenum(single,d);while(label==true){cout<<"same number: "<< d<<" .please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35)!"<<endl;cin>>d;}while(d<0||d>35){cout<<"wrong number,please choose again "<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35)!"<<endl;cin>>d;}}label=checkSamenum(single,d);}single.push_back(d);}}
//        cout<<"single[5]"<<endl;
//        printNum(single);cout<<"cin 2 second number (1~12):"<<endl;vector<int> A;for(int i=0;i<2;i++){int d=0;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)"<<endl;cin>>d;}if(i==0){while(d<0||d>12){cout<<"wrong number,please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)"<<endl;cin>>d;}}A.push_back(d);}else{while(d<0||d>12){cout<<"wrong number,please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)!"<<endl;cin>>d;}}label=checkSamenum(A,d);while(label==true){cout<<"same number: "<< d<<" .please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)!"<<endl;cin>>d;}while(d<0||d>12){cout<<"wrong number,please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)!"<<endl;cin>>d;}}label=checkSamenum(A,d);}A.push_back(d);}}
//        cout<<"A[2]"<<endl;
//        printNum(A);single.push_back(A[0]);single.push_back(A[1]);buyNum.push_back(single);}cout<<"the number you buy:"<<endl;for(int i=0;i<totalNum;i++){printNum( buyNum[i]);}}vector<vector<int>> winSum(vector<int> &winNum,vector<vector<int>> buyNum){int size=buyNum.size();vector<vector<int>> sumCorct;for(int i=0;i<size;i++){vector<int> corct=correctNum(winNum,buyNum[i]);sumCorct.push_back(corct);}return sumCorct;
}void awards(vector<vector<int>> &winSum){int size=winSum.size();for(int i=0;i<size;i++){int a=winSum[i][0];int b=winSum[i][1];cout<<"the "<<i+1<<" lottery: 1_get: "<<a<<" 2_get: " <<b<<" won the :  ";if(a==5&&b==2){cout<<"First prize"<<endl;}else if(a==5&&b==1){cout<<"Second prize"<<endl;}else if(a==5&&b==0){cout<<"Third prize"<<endl;}else if(a==4&&b==2){cout<<"Fourth  prize"<<endl;}else if(a==4&&b==1){cout<<"Fifth prize"<<endl;}else if(a==3&&b==2){cout<<"Sixth prize"<<endl;}else if(a==4&&b==0){cout<<"Seventh prize"<<endl;}else if((a==3&&b==1)||(a==2&&b==2)){cout<<"Eighth prize"<<endl;}else if((a==3&&b==0)||(a==2&&b==1)||(a==1&&b==2)||(a==0&&b==2)){cout<<"Ninth prize"<<endl;}else{cout<<"nothing"<<endl;}}}int main()
{srand((unsigned)time(NULL));vector<int> producenumber;vector<vector<int>>buyNum;vector<vector<int>>winsum;string israndombuy="";cout<<"do you want to buy lottery tickets random ? (yes/no)"<<endl;cin>>israndombuy;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin (yes/no) :"<<endl;cin>>israndombuy;}if(israndombuy=="yes"){randomBuyNum(buyNum);}else if(israndombuy=="no"){chooseNum(buyNum);}else{cout<<"wrong answer"<<endl;cout<<"game over!"<<endl;return 0;}cout<<"***** winning number *****"<<endl;produceNum(producenumber);winsum=winSum(producenumber,buyNum);awards(winsum);cout<<"game over,thanks for you playing!"<<endl;system("pause");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65735.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

彩票中奖率的真相:用 JavaScript 看透彩票背后的随机算法

原本这篇文章是打算叫「假如我是彩票系统开发者」&#xff0c;但细想一下&#xff0c;如果在文章中引用太多的 JavaScript 的话&#xff0c;反而不是那么纯粹&#xff0c;毕竟也只是我的一厢情愿&#xff0c;彩票开发也不全如本文所讲&#xff0c;有所误导的话便也是得不偿失了…

彩票中奖概率计算过程

周六周末无聊&#xff0c;想着买彩票&#xff0c;万一中奖了就不用上班啦&#xff0c;哈哈。所以就计算了一下中奖概率。 中奖规则&#xff1a; 一等奖&#xff1a;投注号码与当期开奖号码全部相同&#xff08;顺序不限&#xff0c;下同&#xff09;&#xff0c;即中奖&#…

使用 ChatGPT 进行研究的先进技术

在这篇文章中&#xff0c;您将探索改进您研究的先进技术。尤其&#xff0c; 分析和解释研究数据进行文献综述并找出研究差距废话不多说直接开始吧&#xff01;&#xff01;&#xff01; 分析和解释研究数据 一家小企业主希望分析客户满意度数据以改善客户服务。他们使用包含 10…

认真聊聊中断(软中断)

文章目录 软中断与硬中断很像软中断的守护进程注册软中断向量表触发一次软中断总结 前面认认真真聊聊中断&#xff0c;其实讲的都是硬中断&#xff0c;注意是硬中断不是硬件中断哦&#xff0c;硬中断的概念更大。 硬中断包括中断、异常以及 INT 指令这种软件中断&#xff0c;整…

免费织梦wap手机网站模板下载

模板名称&#xff1a; 织梦蓝色通用企业wap手机网站源码 模板介绍&#xff1a; 织梦最新内核开发的手机模板&#xff0c;该模板可以用来做企业手机wap站&#xff0c;及企业微信营销浏览展示&#xff1b; 色调及排版都属通用类型&#xff0c;一般的企业均可以使用该模板做手…

5套独立的app手机端模板界面代码

MobioKit是移动手机端HTML模板,可以很容易创建手机网站布局设计,或者移动App应用。创意设计和神奇的特性将在让你完美的移动项目独一无二的。这个移动端UI工具包包含所有必要的设计&#xff0c;可以创建移动商店,个移动社交应用,移动健康应用,业务相关的移动应用程序等。 5套独…

简洁新颖风格Emlog模板程序源码

正文: 简洁模板程序源码Emlog内核&#xff0c;模板的样子也是非常新颖简洁的&#xff0c;并且完美兼容EMLOG5.3.1程序版本&#xff0c;需配合模板设置插件进行使用。 使用方法&#xff1a; 首先需要安装好EMlog系统和模板设置插件&#xff0c;登录后台直接上传模板应用即可。…

dedecms织梦实现url不变电脑和手机显示不同模板

1、只需要电脑站是伪静态就行了&#xff0c;其他伪静态教程也行&#xff0c;只要电脑站是伪静态就行了 2、打开 /include/extend.func.php 在最下面加入一个方法 /*** 判断是否为移动设备访问* return bool*/ function isMobile() {if (isset($_SERVER[HTTP_X_WAP_PROFILE])) …

最新娱乐网纯净无后门emlog模板源码带手机版,会员中心

介绍&#xff1a; 该模板是之前芒果娱乐网自用源码&#xff0c;无毒无后门&#xff0c;放心使用&#xff01; 带手机版&#xff0c;会员中心&#xff01; 安装方法 1.将源码上传好&#xff0c;导入数据库&#xff0c; 2.找到config.php文件&#xff0c;将数据库配置改成你自己…

织梦制作单页面模板的2种方法

在用dedecms织梦程序制作企业模板时需要用到公司介绍、联系我们、关于我们等相关单页面&#xff0c;可织梦dedecms不像wordpress或其它程序单独提供有页面功能&#xff0c;可以直接新建页面。不过织梦dedecms提供了栏目内容的调用功能&#xff0c;可以让织梦站长通过创建栏目实…

给大家分享下织梦网站模板

最近需要用到一个官网模板&#xff0c;作为一个后台程序员来说写前端和专业的差了远了&#xff0c;所以想找个模板学习下&#xff0c;可是我这面是一顿搜一顿找找了好多都快绝望了因为都不是免费下载的不过最终还是找到了&#xff0c;在这里分享给大家 模板一 红色大气响应式重…

织梦dedecms资源素材教程下载网站模板源码(带手机移动端)附安装教程

织梦dedecms资源素材教程下载网站模板(带手机移动端) 1.把文件上传到你的站点的根目录&#xff0c;然后运行 http://你的域名/install/index.php 安装&#xff0c;根据提示填写好相关信息&#xff0c;点“下一步”...即可完成安装。(注&#xff1a;若提示无法安装&#xff0c;…

织梦高端婚纱摄影网站织梦模板(带手机端

模板介绍&#xff1a; 织梦最新内核开发的模板&#xff0c;该模板属于营销型企业通用类、婚纱摄影、婚纱拍摄类企业都可使用&#xff0c; 这款模板使用范围极广&#xff0c;不仅仅局限于一类型的企业&#xff0c;你只需要把图片和产品内容&#xff1b; 换成你的&#xff0c;颜…

安装织梦V5.7手机模板文本教程

备份数据库&#xff0c;&#xff0c;备份文件回本地&#xff0c;&#xff0c;开始&#xff01; 在线更新织梦新版本&#xff1a; 更新时有一点需要注意&#xff1a; 如果&#xff0c;模板默认风格如果是默认的default 则需要改成别的。否则直接更新会覆盖原来的模板文件。<一…

织梦手机端制作

栏目跳转 <a class"moreBtn" href"list.php?tid{dede:field nameid/}">查看更多>></a> 手机站&#xff1a; 首页&#xff1a;index_m.htm 频道栏目页&#xff1a;index_article_m.htm 6 手机端栏目链接&#xff1a;/m/list.php?t…

2023最新OneTheme彩虹易支付用户模板美化主题模板源码/包括Admin端

正文: 2023最新OneTheme彩虹易支付用户模板美化主题模板源码 oneTheme1.0彩虹易支付模板&#xff0c;一款简洁而又免费的模板&#xff0c;告别简陋的原始UI&#xff0c;感受新的视觉体验 此模板当前不一定能满足所有人的审美需求&#xff0c;所以会持续更新&#xff0c;包括adm…

WordPress美女写真源码 带搭建和采集教程

注意&#xff1a;请不要使用程序违法违规&#xff0c;包括我之前发的&#xff0c;不要挑战国家和法律的底线 本程序内资源全部无违规&#xff0c;只有小姐姐图片没有违规内容 搭建教程我都放在源码里了&#xff0c;搭建有一些难度&#xff0c;要集中注意力 源代码地址&#…

织梦dedecms电脑和手机端数据同步及一键生成手机版插件

前言 织梦dedecms系统是很多站长比较喜爱的一款CMS系统&#xff0c;用它来搭建一个网站非常的容易&#xff0c;然而织梦dedecms系统自带的手机版却饱受诟病&#xff0c;比如不能生成静态页&#xff0c;dedecms手机版功能太简单&#xff0c;pc和手机是不同的URL&#xff0c;还需…

织梦cms红色模板 地方门户网站源码[带手机版数据同步]

本程序采用一库两站简洁方便管理后台&#xff0c;一个后台管理两网站&#xff0c;电脑版手机版 1、网站手工DIVcss&#xff0c;代码精简&#xff0c;首页排版整洁大方、布局合理、利于SEO、图文并茂、静态HTML&#xff1b; 2、程序自带XML地图&#xff0c;有利于搜索引擎快速…

通用企业网站源码 dedecms织梦模板 (带手机端)+PC+移动端+利于SEO优化

介绍&#xff1a; 织梦内核开发的模板&#xff0c;该模板属于企业通用类、瓜棚、菜棚类企业都可使用&#xff0c; 这款模板使用范围极广&#xff0c;不仅仅局限于一类型的企业&#xff0c;你只需要把图片和产品内容&#xff0c; 换成你的&#xff0c;颜色都可以修改&#xff0…