彩票计划(上升顺序,不重复等)

Lottery program (Ascending order, non-repeating etc)

本文关键字:顺序 计划 彩票      更新时间:2023-10-16

我很难做彩票。我最近开始编程,所以我对此不太了解。因此,这个人应该能够并选择他想要多少排的数字。然后,应以升序顺序和不重复在该行中出现1-35之间的7个随机数(可以再次出现在下一行中)。我正在使用rand/srand来制作"随机"数字。

任何帮助都很好!提前致谢!:)

这就是代码的atm。

void randNr(int[]);
int main()
{
    int rad;
    string svar, igen;
    setlocale(LC_ALL, "");

    cout << "Hur många rader vill du ha? Välj ett tal mellan 1-12." << endl;            //How many rows do you want?
    cin >> rad;
    for (int a = 1; a < 7; a++)
    {
        if (rad < 0 || rad > 12)
        {
            if (cin.fail())
            {
                system("CLS");
                cin.clear();
            }
            cout << "Fel inmatning, Välj ett av alternativen. n" << endl;          //Wrong answer, choose one of the alternatives
            cout << "För att börja om tryck 'j'." << endl;                          //'j' to start over
            cout << "För att avsluta tryck 'n'." << endl;                           //'n' to quit program
            cin >> svar;
            if (svar == "j" || svar == "J" || svar == "Ja" || svar == "ja")
            {
                system("CLS");
                return main();
            }
            else if (svar == "n" || svar == "N" || svar == "Nej" || svar == "nej")
            {
                return 0;
            }
            else if (svar != "j" && svar != "J" && svar != "Ja" || svar != "n" && svar != "N" && svar != "nej" && svar != "Nej")
            {
                system("CLS");
            }
        }
    }
    randNr(tal);
while (true) {
        cout << "nFör att köra igen: tryck 'j'" << endl;           //To play again press 'j'
        cout << "För att avsluta  : tryck 'n'" << endl;             // To quit, press 'n'
        cin >> igen;
        if (igen == "j" || igen == "J" || igen =="Ja" || igen == "ja")                          
        {
            system("CLS");
            return main();
        }
            else if(igen == "n" || igen == "N" || igen == "nej" || igen == "Nej" )
            {
                system("CLS");
                return 0;
            }
                else
                {
                    system("CLS");
                    cout << "Fel inmatning, välj ett av alternativen" << endl;  //Wrong answer, choose on of the alternatives
                }           
    }
    system("pause");
    return 0;
}
void randNr(int tal[])
{
    //DONT KNOW HOW TO DO THE ASCENDING / NON REPEATING PART 
    //---------------------HERE---------------------------      
}

此代码旨在具有启发性并帮助您的学习,它并不是其他评论所述的最佳选择:

void randNr(int tal[]) {
    int count = 0;
    while (count < SIZE) {
        int number = rand() % 35 + 1;  // range [1, 35]
        int index = 0;
        // find where the number should be placed
        while (index < count && tal[index] < number) {
            index++;
        }
        // if it is not a duplicate, shift other numbers up, then add it
        if (tal[index] != number) {
            for (int i = count; i >= index; i--)
                tal[i + 1] = tal[i];
            tal[index] = number;
            count++;
        }
    }
}