2012-04-20 54 views
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"); 
} 
+1

在main的開頭調用'srand(time(NULL))'來獲得每次執行時不同的彩票號碼。你遇到的具體問題是良好的信息。 – chris 2012-04-20 01:27:00

+0

添加了「作業」標籤。 – Aaron 2012-04-20 01:28:27

+0

還是不太確定該怎麼做,對不起,我是一個非常大的新手。我試圖找出如何創建一個輸出,說明有多少用戶輸入的數字與隨機生成的數字匹配。 – user1345398 2012-04-20 01:41:42

回答

3

首先,只需輸入user的元素,而不是創建5個新變量。保持計數(記得將其初始化爲0)找到多少匹配。當用戶輸入每個號碼時,您可以檢查它是否與彩票號碼匹配。如果是這樣,請增加計數器。

一些其他的東西:

  • 不要永遠使用void main()。改爲使用int main()int main (int argc, char *argv[])。操作系統期望你的程序返回一些內容,如果在main中沒有指定返回值,則返回0(ERROR_SUCCESS),返回int main()

  • 致電srand (time (NULL));(包括<ctime>)在您的程序開始。這將種子設置爲一個變化的值,以便每次運行程序時由rand生成的僞隨機數不會相同。

  • 我不太確定當你有user[5]lottery[5]時,num1-5和winnum的含義是什麼。

  • 您可以

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

    比停頓好很多,不會有多少次按下回車鍵cin.ignore()cin.get()單獨做的不一致更換system ("PAUSE")

  • 如果這是作業的一部分,您必須驗證沒有兩個彩票號碼是相同的。

+1

+1,用於阻止使用'void main()'。這是一個需要立即破解的習慣。 – vpiTriumph 2012-04-20 01:58:23

+0

@AlexYan,正如我所提到的,如果return語句不存在,C++將自動從'main'返回0。 – chris 2012-04-20 03:48:41