請問一下C++的程式問題

yehliu2002a 發表於 2005-4-8 15:47:36 [顯示全部樓層] 回覆獎勵 閱讀模式 3 2567
#include <iostream>
#include "c:\cpp\d_random.h"
using namespace std;
main()
{
        randomNumber r;
        int item,i;
        for(i=0;i<6;i++){
                item = r.random(42)+1;
                cout<<item<<" ";
        }
        cout<<endl;
}


這部份是寫取樂透號碼的程式
可是這個寫出來他取得的號碼會重複到
請問有人會把打改成號碼不會重複到的嗎???
感激不儘阿:crying:

[ Last edited by 夕陽武士 on 2005-4-9 at 12:28 AM ]

已有(3)人回文

切換到指定樓層
hum00 發表於 2005-4-9 02:04
去軟體研究所-> 程式語言區  問比較快
skyphantom 發表於 2005-4-9 03:17
多開一個ARRAY紀錄選到的號碼吧
#include <iostream>
#include "c:\cpp\d_random.h"
using namespace std;
main()
{
        randomNumber r;
        int item,i;
        int s[6];
        for(i=0;i<6;i++){
        s=r.random(42-i)+1
              for(int j=0;j<i;j++){
              if(s>=s[j]){s++;}
              }
        cout<<s<<" "
        }
        cout<<endl;
}

[ Last edited by skyphantom on 2005-4-9 at 03:18 AM ]
acicada 發表於 2005-4-10 10:26
//摩仿樂透彩開獎的情形,每開出一號,該號球即離開球池,因此開下一號時,不會和前面已開的號碼重複
#include <iostream>
#include "c:\cpp\d_random.h"
using namespace std;
main()
{
        randomNumber r;
        int item,i;
        int lottery[42];                                // 加一陣列lottery[42]當做球池
        for (i=0;i<42;i++) lottery[i]=i+1;  //把42個號球放入球池中
        for(i=0;i<6;i++){
                item = r.random(42-i);            //選出第item球
                cout<<lottery[item]<<" ";     //輸出第item球的號碼
                lottery[item]=lottery[42-i];    //把選出的球用最後一球取代(下回取球時,球池即少了一球)
        }
        cout<<endl;
}
你需要登入後才可以回覆 登入 | 註冊會員

本版積分規則