1

我正在尝试完成家庭作业,但我在任何地方都找不到。我正在尝试将输入数字与随机生成的数字相匹配,并显示 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");
}
4

1 回答 1

3

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

其他几件事:

  • 永远不要使用void main(). 使用int main()int main (int argc, char *argv[])代替。操作系统希望你的程序返回一些东西,int main()如果没有指定返回值,则返回 0 (ERROR_SUCCESS) main

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

  • 我不太确定 num1-5 和 winnum 的意义是什么,当你有user[5]and时lottery[5]

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

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

    cin.ignore()这比暂停要好得多,并且没有cin.get()单独按 Enter 多少次的不一致。

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

于 2012-04-20T01:51:23.543 回答