苹果沃珂 发表于 2014-6-1 18:32:19

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

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

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

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


牡丹花下死做鬼 发表于 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);
                                                }
                                        }
                                }
                        }
                }
        }
        }
}

苹果沃珂 发表于 2014-6-2 11:27:46

牡丹花下死做鬼 发表于 2014-6-1 19:37 static/image/common/back.gif
彩票规则不懂 O(∩_∩)O~瞎猜的
算法很垃圾啊 高手勿喷

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

牡丹花下死做鬼 发表于 2014-6-2 12:32:48

苹果沃珂 发表于 2014-6-2 11:27 static/image/common/back.gif
能不能写成一个通用函数,如:int Func( int nMax, int nSel);
当彩票是15选5的时候,我传参nMax=22,nS ...

现已在学校....现在老师还没来用教室电脑上了下我三天后放假回去写
页: [1]
查看完整版本: C训练题-生活应用3: 写出某种彩票的所有开奖结果