Как?- Лотерея Симулятор (С) - PullRequest
0 голосов
/ 21 марта 2019

Я написал программу на C, которая будет имитировать розыгрыши лотереи в течение X лет, которые были введены пользователем, после ввода количества лет будет имитировать розыгрыш лотереи каждую неделю в течение многих лет.,Программа также должна распечатать, если предварительно введенные числа (уже в коде) совпадают, а также распечатать, сколько раз совпадают числа, например,

  • 6 совпавших чисел ()
  • 5 совпавших чисел ()
  • и т. Д.

Это код, который у меня есть, все скомпилировано и работает нормально:

#include <stdio.h>

int main(int argc, char const *argv[])
{
    //Welcome the User to the Program
    puts("============================");
    puts("       WELCOME TO       ");
    puts("============================");
    puts("  PROJECT : JACKPOT DREAMS  ");
    puts("============================");

    //Rogers 6 Original Numbers
    int nums[6] = { 5, 11, 15, 33, 42, 43 };

    //Ask how many years to simulate
    int years = 0;
    printf("How many years would you like to sleep for? :\n");
    scanf("%d", &years);
    printf("Ok. I will now play the lottery %d year(s)\n",years);
    printf("Sleep Tight :)....\n");

    //Generate Random Numbers
    int ctr;
    int randnums[6];
    srand(time(NULL));
    while (years-- > 0) {
        for( ctr = 0; ctr < 6; ctr++ ) randnums[ctr] = (rand() % 50);

        //Check Numbers with Rogerns numbers
        int win = 1;
        for( ctr = 0; ctr < 6; ctr++ )
        {
            if(randnums[ctr] != nums[ctr])
            {
                win = 0;
                break; // if there's a mismatch we don't need to continue
            }
        }


        return 0;
    }

}

делаетКто-нибудь знает, как я это сделаю?

1 Ответ

1 голос
/ 21 марта 2019

Сначала кажется, что вы return после прохождения первого года. Вы должны переместить оператор return за скобки. Во-вторых, как уже упоминалось в некоторых комментариях, вы должны писать блоки более тщательно и делать правильные отступы.

Ниже я переписал вашу программу, чтобы распечатать, если некоторые цифры совпадают для данного года. Если все числа совпадают, «Победитель!» также печатается. Для этого я добавил несколько переменных и print операторов.

Надеюсь, это поможет.

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

int
main(int argc, char const *argv[])
{
    //Welcome the User to the Program
    puts("============================");
    puts("         WELCOME TO         ");
    puts("============================");
    puts("  PROJECT : JACKPOT DREAMS  ");
    puts("============================");

    //Rogers 6 Original Numbers
    int nums[6] = { 5, 11, 15, 33, 42, 43 };

    //Ask how many years to simulate
    int years = 0;
    printf("How many years would you like to sleep for? :\n");
    scanf("%d", &years);
    printf("Ok. I will now play the lottery %d year(s)\n",years);
    printf("Sleep Tight :)....\n");

    //Generate Random Numbers
    int numberOfWins = 0;
    int ctr;
    int randnums[6];
    srand(time(NULL));

    int currYear = 0;
    while (years-- > 0) 
    {
        currYear++;
        for( ctr = 0; ctr < 6; ctr++ ) randnums[ctr] = (rand() % 50);

        //Check Numbers with Rogerns numbers
        int win = 1, matched = 0;
        for( ctr = 0; ctr < 6; ctr++ )
        {
            if(randnums[ctr] != nums[ctr])
            {
                win = 0;
            } else {
                matched++;
            }
        }
        numberOfWins += win;

        //If any numbers matched or win, print it.
        if (matched > 0) printf("In year: %d, %d number(s) matched\n", currYear, matched);
        if (win) printf("Winner!\n");
    }

    printf("You won %d time(s)\n", numberOfWins);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...