用c++实现大乐透的选号与开奖,芜湖!!!以后买彩票可以自己机选咯

1.效果图

呐,老规矩,先放代码执行后的效果图

用c++实现大乐透的选号和随机产生的号码,并进行开奖获取开奖结果

2.代码

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
//定义一个遍历的函数
int bianli(int nums[]){
    // i < 4 ,j < 4 是对数组前5个数进行排序
    for(int i = 0; i < 4 ; i ++){
        for(int j = 0; j < 4; j++){
            if(nums[j] > nums[j + 1]){
                int x = nums[j];
                nums[j] = nums[j + 1];
                nums[j + 1] = x;
            }
        }
    }
    //遍历
    for(int i = 0; i < 7; i++){
        cout << nums[i] << '\t';
        if(i == 4){
            cout << "后区:  " ;
        }
    }
    cout << endl;
}

//对用户所选的前五个数进行去重
int save(int nums[],int len,int tag){
    for(int i = 0; i < len; i++){
        if(nums[i] == tag){
            return 1;
        }
    }
    return 0;
}
//对用户所选的后两个数进行去重
int save2(int nums[],int len,int tag){
    //i= 5 保证从第六个数开始,到7结束
    for(int i = 5; i < len; i++){
        //查找到数返回1,否则返回0;
        if(nums[i] == tag){
            return 1;
        }
    }
    return 0;
}
//获取用户输入的号码集合,存入到数组中
int getNums(int nums[]) {
    for(int i = 0; i < 7; i++){
        if(i < 5){
            cout << "请输入第" << i + 1 << "个号码" << endl;
            int x = 0;
            cin >> x;
            if(x < 1 || x > 35){
                cout << "输入有误,请输入1 - 35的数" << endl;
                i--;  //输入错误时,使本次循环再执行一次
                continue;
            }
            //判断是否已经选择过该数字
            int t = save(nums, 5 , x);
            if(t){
                cout << "输入的数已经存在,请重新输入" << endl;
                i--;
                continue;
            }
            nums[i] = x;


        }else{
            //选择后区2个号码,i- 4 保证显示为第1和2个
             cout << "请输入后区第" << i - 4 << "个号码" << endl;
            int x = 0;
            cin >> x;
            if(x < 1 || x > 12){
                cout << "输入有误,请输入1 - 12的数" << endl;
                i--;
                continue;
            }
            //判断是否已经选择过该数字
            int t = save2(nums, 7, x);
            if(t){
                cout << "输入的数已经存在,请重新输入" << endl;
                i--;
                continue;
            }
            nums[i] = x;
        }

    }
    cout << endl << "用户选取号码为:" << endl;
    bianli(nums);
}
//获取开奖(随机)的号码集合,存入到数组中
int getKjnums(int nums[]){
    for(int i = 0; i < 7; i++){
        //随机获取前五个数,并判断是否重复
        if(i < 5){
            //保证获取的数是1-35
            int x = (rand() % 35) + 1;
            int t = save(nums,5,x);
            if(t){
                i--;
                continue;
            }
            nums[i] = x;
        }else{
            //保证获取的数是1-12
            int x = (rand() % 12) + 1;
            int t = save2(nums,7,x);
            if(t){
                i--;
                continue;
            }
            nums[i] = x;

        }
    }
    cout << endl << "本次开奖号码为:" << endl;
    bianli(nums);
}
int chaJiang(int nums[],int kjnums[]){
    //记录号码相同的个数;
    int x = 0; 
    //使用顺序查找对两个数组的前5个数进行比较
    for(int i = 0; i < 5; i++){
        for(int j = 0; j < 5; j++){
            if(nums[i] == kjnums[j]){
                x++;
            }
        }
    }
    //使用顺序查找对两个数组的后2个数进行比较
    for(int i = 5; i < 7; i++){
        for(int j = 5; j < 5; j++){
            if(nums[i] == kjnums[j]){
                x++;
            }
        }
    }
    switch (x)
    {
    case 7 : 
        cout << endl << "恭喜您中2000万元" << endl;
        break;
    case 6 : 
        cout << endl << "恭喜您中1万元" << endl;
        break;
    case 5 : 
        cout << endl << "恭喜您中2000元" << endl;
        break;
    case 4 : 
        cout << endl << "恭喜您中100元" << endl;
        break;
    case 3 : 
        cout << endl  << "恭喜您中5元" << endl;
        break;
    default:
        cout << endl << "恭喜 !福利基金会老板奢华的一天有您的参与" << endl;
        break;
    }
}

int main(int argc, char const *argv[])
{
    srand(time(NULL));
    
    //定义两个数组用来存储用户输入的号码 和 开奖(随机)的号码
    int nums[7] = {0};
    int kjnums[7] = {0};
    //获取用户输入号码
    getNums(nums);
    //获取开奖号码
    getKjnums(kjnums);
    //按照规则进行查奖
    chaJiang(nums,kjnums);
    return 0;
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的大号码的程序: ```c++ #include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { srand((unsigned)time(NULL)); // 初始化随数种子 int num[35], red[12], blue[5]; // 定义号码数组 for (int i = 0; i < 35; i++) { num[i] = i + 1; // 初始化号码数组 } // 随取红球号码 int index; for (int i = 0; i < 12; i++) { index = rand() % (35 - i) + i; // 生成随下标 red[i] = num[index]; // 取号码 // 将已号码与最后一个未号码交换,避免重复取 int temp = num[index]; num[index] = num[34 - i]; num[34 - i] = temp; } // 随取蓝球号码 for (int i = 0; i < 5; i++) { blue[i] = rand() % 12 + 1; // 生成随号码 } // 输出结果 cout << "红球号码:"; for (int i = 0; i < 12; i++) { cout << red[i] << " "; } cout << endl << "蓝球号码:"; for (int i = 0; i < 5; i++) { cout << blue[i] << " "; } cout << endl; return 0; } ``` 程序中首先通过 `srand()` 函数初始化随数种子,然后定义三个数组用于存储号码,其中 `num` 数组存储大的号码,`red` 数组用于存储出的红球号码,`blue` 数组用于存储出的蓝球号码。 程序通过一个循环从 `num` 数组中随取 12 个红球号码,以及 5 个蓝球号码。每当取一个号码,程序都将已号码与最后一个未号码交换,避免重复取。 最后,程序将出的号码输出到屏幕上。 注意,这个程序仅仅是为了演示如何使用 C++ 生成随号码,并不保证生成的号码一定是中号码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值