栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

代码如下

#include 
#include
#include
#include
using namespace std;

//生成随机数
void produceNum(vector &A);
//检测数字是否存在
bool checkSamenum(vectorA,int temp);
//打印数字
void printNum(vector A);
//检测单注前后区中奖数字个数
vector correctNum(vector predictNum,vector chooseNum);
//选择购买数字
void chooseNum(vector>&buyNum);
//保存所有中奖情况
vector> winSum(vector &winNum,vector> buyNum);
//获奖情况
void awards(vector> &winSum);
//随机购买数字
void randomBuyNum(vector>&buyNum);

void produceNum(vector &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< 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<>>>"<A,int temp){
    int label=false;
    int size=A.size();
    for(int i=0;i
        if(A[i]==temp){
            label=true;
            return label;
        }

    }
    return label;
}
void printNum(vector A){
    for(vector::iterator it=A.begin();it!=A.end();it++){
        cout<<*it<<" ";
    }
    cout< correctNum(vector predictNum,vector chooseNum){
    vector 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>&buyNum){
    cout<<"random buy lottery tickets"<>totalNum;
    while(cin.fail()){
        cin.clear();//清除cin的错误信息
        cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
        cout<<"please cin number :"<>totalNum;
    }
    while(totalNum<0||totalNum>100){
        cout<<"wrong number,please rechoose lottery tickets: (0~100)"<>totalNum;
        while(cin.fail()){
            cin.clear();//清除cin的错误信息
            cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
            cout<<"please cin number :"<>totalNum;
        }
    }
    cout<<"the number you buy:"<
        vector single;
        produceNum(single);
        buyNum.push_back(single);
    }

//    for(int i=0;i
//        printNum( buyNum[i]);
//    }

}

void chooseNum(vector>&buyNum){
    cout<<"How many lottery tickets do you want to buy (0~30) ?"<>totalNum;
    while(cin.fail()){
        cin.clear();//清除cin的错误信息
        cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
        cout<<"please cin number (1~30)"<>totalNum;
    }
    while(totalNum<0||totalNum>30){
        cout<<"wrong number,please rechoose lottery tickets: "<>totalNum;
        while(cin.fail()){
            cin.clear();//清除cin的错误信息
            cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
            cout<<"please cin number (1~30)"<>totalNum;
        }
    }
    for(int i=0;i
        cout<<"choose the "< single;
        bool label=false;
        cout<<"cin 5 first number (1~35)"<
            int d=0;
            cin>>d;
            while(cin.fail()){
                cin.clear();//清除cin的错误信息
                cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
                cout<<"please cin number (1~35)"<>d;
            }
            if(i==0){
                while(d<0||d>35){
                    cout<<"wrong number,please choose again a"<>d;
                    while(cin.fail()){
                        cin.clear();//清除cin的错误信息
                        cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
                        cout<<"please cin number (1~35)!"<>d;
                    }
                }
                single.push_back(d);
            }else{
                while(d<0||d>35){
                    cout<<"wrong number,please choose again "<>d;
                    while(cin.fail()){
                        cin.clear();//清除cin的错误信息
                        cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
                        cout<<"please cin number (1~35) "<>d;
                    }
                }
                label=checkSamenum(single,d);
                while(label==true){
                    cout<<"same number: "<< d<<" .please choose again"<>d;
                     while(cin.fail()){
                         cin.clear();//清除cin的错误信息
                         cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
                         cout<<"please cin number (1~35)!"<>d;
                     }
                     while(d<0||d>35){
                         cout<<"wrong number,please choose again "<>d;
                         while(cin.fail()){
                             cin.clear();//清除cin的错误信息
                             cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
                             cout<<"please cin number (1~35)!"<>d;
                         }
                     }

                     label=checkSamenum(single,d);
                }
                single.push_back(d);
            }
         }
//        cout<<"single[5]"< 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)"<>d;
            }
            if(i==0){
                while(d<0||d>12){
                    cout<<"wrong number,please choose again"<>d;
                    while(cin.fail()){
                        cin.clear();//清除cin的错误信息
                        cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
                        cout<<"please cin number (1~12)"<>d;
                    }
                }
                A.push_back(d);
            }else{
                while(d<0||d>12){
                    cout<<"wrong number,please choose again"<>d;
                    while(cin.fail()){
                        cin.clear();//清除cin的错误信息
                        cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
                        cout<<"please cin number (1~12)!"<>d;
                    }
                }
                label=checkSamenum(A,d);
                while(label==true){
                    cout<<"same number: "<< d<<" .please choose again"<>d;
                     while(cin.fail()){
                         cin.clear();//清除cin的错误信息
                         cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
                         cout<<"please cin number (1~12)!"<>d;
                     }
                     while(d<0||d>12){
                         cout<<"wrong number,please choose again"<>d;
                         while(cin.fail()){
                             cin.clear();//清除cin的错误信息
                             cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
                             cout<<"please cin number (1~12)!"<>d;
                         }
                     }

                     label=checkSamenum(A,d);
                }
                A.push_back(d);
            }


         }
//        cout<<"A[2]"<
        printNum( buyNum[i]);
    }

}

vector> winSum(vector &winNum,vector> buyNum){
    int size=buyNum.size();
    vector> sumCorct;
    for(int i=0;i
        vector corct=correctNum(winNum,buyNum[i]);
        sumCorct.push_back(corct);
    }
    return sumCorct;
}

void awards(vector> &winSum){
    int size=winSum.size();
    for(int i=0;i
        int a=winSum[i][0];
        int b=winSum[i][1];
        cout<<"the "<
            cout<<"First prize"<
            cout<<"Second prize"<
            cout<<"Third prize"<
            cout<<"Fourth  prize"<
            cout<<"Fifth prize"<
            cout<<"Sixth prize"<
            cout<<"Seventh prize"<
            cout<<"Eighth prize"<
            cout<<"Ninth prize"<
            cout<<"nothing"<
    srand((unsigned)time(NULL));
    
    vector producenumber;
    vector>buyNum;
    vector>winsum;
    string israndombuy="";
    cout<<"do you want to buy lottery tickets random ? (yes/no)"<>israndombuy;
    while(cin.fail()){
        cin.clear();//清除cin的错误信息
        cin.ignore();//忽略掉缓冲区的内容,置于EOF位置
        cout<<"please cin (yes/no) :"<>israndombuy;
    }
    if(israndombuy=="yes"){
        randomBuyNum(buyNum);
    }else if(israndombuy=="no"){
        chooseNum(buyNum);}
    else{
        cout<<"wrong answer"<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879384.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号