鱼C论坛

 找回密码
 立即注册
查看: 2717|回复: 3

[技术交流] C训练题-生活应用3: 写出某种彩票的所有开奖结果

[复制链接]
发表于 2014-6-1 18:32:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 苹果沃珂 于 2014-6-7 11:39 编辑

题目与方案分析:
       枚举出某种彩票的所有可能的开奖结果。       如:15选5,22选5,双色球等等的开奖所有可能。
       难度系数:★★★★

<苹果沃克:欢迎交流, 范例已贴出Go>


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-1 19:37:47 | 显示全部楼层
彩票规则不懂 O(∩_∩)O~瞎猜的
算法很垃圾啊 高手勿喷
#include<stdio.h>

void sw();
void ew();
void ssq();

int main()
{
        int i;
        char ch;
s:        printf("-------------------\n");
        printf("      1 : 15选5    \n");//1-15选5个
        printf("      2 : 25选5    \n");//1-25选5个
        printf("      3 : 双色球   \n");//1-30选6个 + 1-15选一个
        printf("---------------------");
        scanf("%d",&i);
        while((ch = getchar())!='\n');
        switch(i)
        {
        case 1:
                sw();
                goto s;
        case 2:
                ew();
                goto s;
        case 3:
                ssq();
                goto s;
        default:
                printf("你的输入有误,请重新输入!\n");
                goto s;
        }
        
        return 0;
}

void sw()
{
        int i,j,k,l,m;
        for(i = 1;i<=11;i++)
        {
                for(j = i+1;j<=12;j++)
                {
                        for(k = j+1;k<=13;k++)
                        {
                                for(l = k+1;l<=14;l++)
                                {
                                        for(m = l+1;m<=15;m++)
                                        {
                                                printf("%d,%d,%d,%d,%d\n",i,j,k,l,m);
                                        }
                                }
                        }
                }
        }
}

void ew()
{
        int i,j,k,l,m;
        for(i = 1;i<=21;i++)
        {
                for(j = i+1;j<=22;j++)
                {
                        for(k = j+1;k<=23;k++)
                        {
                                for(l = k+1;l<=24;l++)
                                {
                                        for(m = l+1;m<=25;m++)
                                        {
                                                printf("%d,%d,%d,%d,%d\n",i,j,k,l,m);
                                        }
                                }
                        }
                }
        }
}
void ssq()
{
        int i,j,k,l,m,n,z;
        for(z=1;z<=15;z++)
        {
        for(n = 1;n<=25;n++)
        {
                for(i = n+1;i<=26;i++)
                {
                        for(j = i+1;j<=27;j++)
                        {
                                for(k = j+1;k<=28;k++)
                                {
                                        for(l = k+1;l<=29;l++)
                                        {
                                                for(m = l+1;m<=30;m++)
                                                {
                                                        printf("%d,%d,%d,%d,%d,%d  +  %d\n",n,i,j,k,l,m,z);
                                                }
                                        }
                                }
                        }
                }
        }
        }
}

评分

参与人数 1鱼币 +3 收起 理由
苹果沃珂 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-2 11:27:46 | 显示全部楼层

能不能写成一个通用函数,如:int Func( int nMax, int nSel);
当彩票是15选5的时候,我传参nMax=22,nSel=5
当彩票是80选6的时候,我传参nMax=80,nSel=6
……

点评

现已在学校....现在老师还没来用教室电脑上了下我三天后放假回去写  详情 回复 发表于 2014-6-2 12:32
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-2 12:32:48 | 显示全部楼层
苹果沃珂 发表于 2014-6-2 11:27
能不能写成一个通用函数,如:int Func( int nMax, int nSel);
当彩票是15选5的时候,我传参nMax=22,nS ...

现已在学校....现在老师还没来用教室电脑上了下我三天后放假回去写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 11:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表