使用C语言生成随机彩票的双色球或大乐透的球号数

该程序功能为从键盘输入想要够买的彩票注数,随后生成对应个随机球号数并输出(显然随机数不能重复)。

代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//双色球:红:33选6 蓝:16选1
//大乐透:红:35选5 蓝:12选2

#define RED 35
#define pick1 5
#define BLUE 12
#define pick2 2

int r1[RED]={0},b1[BLUE]={0},r2[RED]={0},b2[BLUE]={0};

void red()
{
    int i,j,k;
    for(j=0,i=0;i<pick1;i++,j++)
    {
         r1[i]=rand()%RED+1;
        for(k=0;k<=i;k++)
        {
            r2[j]=r1[i];
            if(r1[i]==r2[k] && i!=k)
            {
                i--;
                j--;
                break;
            }
        }
    }
    for(i=0;i<pick1;i++)
        printf("%02d ",r1[i]);
}

void blue()
{
    int i,j,k;
    for(j=0,i=0;i<pick2;i++,j++)
    {
         b1[i]=rand()%BLUE+1;
        for(k=0;k<=i;k++)
        {
            b2[j]=b1[i];
            if(b1[i]==b2[k] && i!=k)
            {
                i--;
                j--;
                break;
            }
        }
    }
    for(i=0;i<pick2;i++)
        printf("%02d ",b1[i]);
}

int main()
{
    int n,i;
    srand(time(NULL));
    printf("Please enter the number:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        printf("<%d>  ",i);
        red();
        printf("----");
       blue();
       printf("\n");
    }
    system("pause");
    return 0;
}

修改define中相应的数字,即可改变对应颜色输出的球号的个数。

其中生成不重复随机数的方法为:
通过比较当前生成数与除它本身之外已生成的数,若有相同的数,则对它进行重新赋值,直到没有重复的数为止。

程序运行结果如下:
在这里插入图片描述

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值