标题:期末作业修改了好多次还是无法运行,求大侠指点
只看楼主
贪嗔痴怨
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-1-7
结帖率:100%
已结贴  问题点数:20 回复次数:4 
期末作业修改了好多次还是无法运行,求大侠指点
彩票22选5的程序,本人初学半年总是改不好,求大侠指点。
#include <stdio.h>
#include <stdlib.h>
// 引入rand(),srand()函数所在头文件
#include <time.h>
const int M = 22;
// 号码总数 const
int N = 5;
// 摇出的号码数
// 将22个号码装入摇奖机
void init(char* balls )
{
    for(int i=0;i<M;++i)
    {
        balls[i] = i + 1;
    }
}
// 摇奖,将中奖号码摇出到winnings数组 v
void shuffle(char* balls,char* winnings)
{
    // 用当前时间初始化随机种子
    srand(time(NULL));
    // 依次摇出N个中奖号码
    for(int i = 0; i < N; ++i)
    {
        // 得到一个0到(M-i)之间的随机数
        int n = rand()%(M - i);
        // 将摇出的号码复制到winnings保存
        winnings[i] = balls[n];
        // 用balls末尾的数字填补摇出号码的空位
        balls[n] = balls[M-i];
    }
}
int main(void)
{
    // 准备摇奖
    char balls[M];
    init(balls);
    // 摇啊摇,摇啊摇
    char winnings[N];
    shuffle(balls,winnings);
    // 公布中奖号码
    puts("winning numbers:");
    for(int i = 0; i < N; ++i)
    {
        printf("%d  ",winnings[i]);
    }
    return 0;
}
搜索更多相关主题的帖子: shuffle include 中奖号码 彩票 
2015-01-07 11:02
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
这东西没啥难得  主要看一下  摇出来一个球后 是放里面接着摇 还是摇出来放外面 从剩下的球里接着摇

DO IT YOURSELF !
2015-01-07 11:05
贪嗔痴怨
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-1-7
得分:0 
回复 2楼 wp231957
这程序写出来运行不了,修改好多次还是不行
2015-01-07 11:09
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
得分:20 
这是我以前写的一个双色球机选代码中的一部分 简单改了下 不知道满足楼主要求不?
程序代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define MAXSN 99

struct ssq_rand {
    int sn;
    int red[6];
};
struct ssq_rand data[MAXSN];
struct ssq_rand *p_sr = data;

void red_rand(int *);
void px_s(int *);
void red_prt(int *);

int main(void)
{
    int max, i;

    /* 生成随机数的种子 */
    srand((unsigned int)time(NULL));

    printf("请输入机选的注数(范围在1-%d之间): ", MAXSN);
L1: scanf("%d", &max);
    if (max > 0 && max < MAXSN+1)
    {
        /* 打印表头 */
        printf("\n序号    红    球     区  \n");
        printf("---------------------------\n");
        for (i = 0; i < max; i++)
        {
            /* 生成并打印序号 */
            (p_sr + i)->sn = i + 1;
            printf("%02d>   ", (p_sr + i)->sn);
            
            /* 生成且排序后打印红球 */
            red_rand((p_sr + i)->red);
            px_s((p_sr + i)->red);
            red_prt((p_sr + i)->red);

            /*每成功打印一注,则换行 */
            printf("\n");
        }

        /* 打印表的下界 */
        printf("---------------------------\n");
    }
    else
    {
        printf("超出范围,请重新输入机选的注数: ");
        goto L1;
    }

    return 0;
}

/* 随机生成红球 */
void red_rand(int *a)
{
    int j, k;
    for (j = 0; j < 5; j++)
    {
        a[j] = 1 + (int)(22.0 * rand() / (RAND_MAX + 1.0));
        do
        {
            ++j;
            a[j] = 1 + (int)(22.0 * rand() / (RAND_MAX + 1.0));
            for (k = 0; k < j;)
            {
                if (a[j] != a[k])
                {
                    ++k;
                }
                else
                {
                    a[j] = 1 + (int)(22.0 * rand() / (RAND_MAX + 1.0));
                    --j;
                    continue;
                }
            }
        } while (j < 5);
    }
}

/* 冒泡排序--升序 */
void px_s(int *b)
{
    int t, x, y;
    for (x = 0; x < 4; x++)
        for (y = 0; y < (3 - x); y++)
            if (b[y] > b[y + 1])
            {
                t = b[y];
                b[y] = b[y + 1];
                b[y + 1] = t;
            }
}

/* 打印红球 */
void red_prt(int *c)
{
    int n;
    for(n = 0; n < 5; ++n)
    {
        printf("%02d  ", c[n]);
    }
}

Only the Code Tells the Truth             K.I.S.S
2015-01-07 11:22
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:0 
为什么用末尾数字填补空位,摇出来之后中奖号码是否再放回箱子接着参与抽奖

一片落叶掉进了回忆的流年。
2015-01-07 11:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-440799-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.248919 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved