匹配数字

时间:2012-04-20 01:24:37

标签: c++

我正在尝试完成家庭作业,我无法在任何地方找到它。我正在尝试将输入数字与随机生成的数字进行匹配,并显示5个中的多少是正确的(也有输入/输出消息)。这就是我到目前为止所提供的任何帮助。

#include <iostream>
#include <cstdlib>
using namespace std;

void main()
{
    //variables
    int lottery[5], user[5];
    int count = 0;
    int num1, num2, num3, num4, num5;
    int winnum;
    //generating numbers
    for (int i=0; i <5; i++)
    {
        lottery[i] =1+rand()%9;
    }
    //input
    cout << "Enter a digit between 0-9: ";
    cin >> num1;
    // ...
    cin >> num5;

    winnum = rand();

    //display
    cout << "Winning Lottery Numbers: " << winnum << endl;
    cout << "Your ticket Numbers: " 
         << num1 << num2 << num3 << num4 << num5 << endl;

    //matching the numbers
    //HELP!
    system("pause");
}

1 个答案:

答案 0 :(得分:3)

首先,只需输入user的元素,而不是创建5个新变量。保持计数(记住将其初始化为0)你找到多少匹配。当用户输入每个号码时,您可以检查它是否与彩票号码匹配。如果是,请增加计数器。

其他一些事情:

  • 不要 使用void main()。请改用int main()int main (int argc, char *argv[])。操作系统希望您的程序返回一些内容,如果在int main()中未指定返回值,则返回main,返回0(ERROR_SUCCESS)。

  • 在程序开头调用srand (time (NULL));(包括<ctime>)。这会将种子设置为更改的值,以便rand生成的伪随机数在每次运行程序时都不会相同。

  • 当你user[5]lottery[5]时,我真的不确定num1-5和winnum是什么意思。

  • 您可以将system ("PAUSE")替换为

    cin.sync();
    cin.get();

    这比暂停要好得多,而且单独按cin.ignore()cin.get()进行输入的次数不一致。

  • 如果作业的一部分,您必须验证两个彩票号码是否相同。