伊莉討論區
標題:
請幫忙用C++修改寫出完整的樂透號碼程式,要能夠排序大小
[打印本頁]
作者:
次元幻覺
時間:
2010-7-21 05:38 PM
標題:
請幫忙用C++修改寫出完整的樂透號碼程式,要能夠排序大小
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
trtc008056
時間:
2010-7-21 05:59 PM
本帖最後由 trtc008056 於 2010-7-21 06:01 PM 編輯
其實不太懂你的意思
所以我寫的是開獎器
這應該不會太難
花了5分鐘寫一寫
應該是不太會有錯誤
看不懂要問喔
#include<iostream>
#include<time.h>
using namespace std;
int main(){
int L_num[6];
int n,n_2;
int temp;
srand(time(NULL));
cout<<"產生六個號碼中...."<<endl;
for(n=0;n<6;n++){
L_num[n] = (rand()%39)+1;
for(n_2=0;n_2<n;n_2++){
if(L_num[n] == L_num[n_2]){ n--;}
}
}
for(n_2=0;n_2<6;n_2++){
for(n=0;n<5;n++){
if(L_num[n]>L_num[n+1]){
temp=L_num[n];
L_num[n]=L_num[n+1];
L_num[n+1]=temp;
}
}
}
cout<<"樂透號碼為:"<<endl;
for(n=0;n<6;n++){
cout<<L_num[n]<<" ";
}
cout<<endl;
system("PAUSE");
return 0;
}
複製代碼
作者:
次元幻覺
時間:
2010-7-21 10:07 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
trtc008056
時間:
2010-7-21 11:59 PM
本帖最後由 trtc008056 於 2010-7-28 10:27 AM 編輯
這個是輸入六個數字,然後樂透開獎,最後對照
#include<iostream>
#include<time.h>
using namespace std;
int main(){
int counter=0;//計算中了幾碼
int Player_input[6];//玩家輸入
int L_num[6];//電腦開獎號碼
int n,n_2;//計數用
int temp;//暫存用
srand(time(NULL));
cout<<"請輸入六個號碼"<<endl;
for(n=0;n<6;n++){
cin>>Player_input[n];
for(n_2=0;n_2<n;n_2++){
if(Player_input[n] == Player_input[n_2]){//檢查是否重複輸入
cout<<"重複輸入,請重新輸入!!"<<endl;;
n--;
}
}
if(Player_input[n]<1 || Player_input[n]>39){
cout<<"輸入數值錯誤,請輸入1~39之間任意數字!!"<<endl;//假查是否超出範圍
n--;
}
}
cout<<"產生六個號碼中...."<<endl;
for(n=0;n<6;n++){
L_num[n] = ((unsigned int)rand()%39)+1;//亂數產生1~39號
for(n_2=0;n_2<n;n_2++){//檢查是否重複
if(L_num[n] == L_num[n_2]){ n--;}
}
}
for(n_2=0;n_2<6;n_2++){//排大小,用汽泡排序(好像是叫做這個名子?)
for(n=0;n<5;n++){
if(L_num[n]>L_num[n+1]){
temp=L_num[n];
L_num[n]=L_num[n+1];
L_num[n+1]=temp;
}
}
}
cout<<"樂透號碼為:"<<endl;//開獎
for(n=0;n<6;n++){
cout<<L_num[n]<<" ";
}
cout<<endl;
for(n_2=0;n_2<6;n_2++){//排出玩家的號碼大小
for(n=0;n<5;n++){
if(Player_input[n]>Player_input[n+1]){
temp=Player_input[n];
Player_input[n]=Player_input[n+1];
Player_input[n+1]=temp;
}
}
}
cout<<"你的號碼為:"<<endl;//玩家的號碼
for(n=0;n<6;n++){
cout<<Player_input[n]<<" ";
}
for(n=0;n<6;n++){
for(n_2=0;n_2<6;n_2++){
if(Player_input[n] == L_num[n_2])//如果有相同的號碼,則中獎計數器加一
counter++;
}
}
cout<<"中了"<<counter<<"碼";
cout<<endl;
system("PAUSE");
return 0;
}
複製代碼
作者:
kantan
時間:
2010-7-27 06:28 PM
上面大大寫的有一點小bug
我稍微改了一下^^"
最後的判斷相同號碼那是不是應該改成
for(n=0;n<6;n++){
for(n_2=0;n_2<6;n_2++){
if(Player_input[n] == L_num[n_2])//如果有相同的號碼,則中獎計數器加一
counter++;
}
}
複製代碼
但真的樂透好像是號碼和順序都有相同才算中吧?
作者:
trtc008056
時間:
2010-7-28 10:27 AM
回復
5#
kantan
謝謝你幫我修正
我去台灣彩券查過,不需要順序一樣
作者:
kantan
時間:
2010-7-28 11:10 AM
不客氣^^
我還以為要順序一樣呢
原來我一直搞錯了XD
作者:
銀幻
時間:
2010-7-28 01:24 PM
回復
4#
trtc008056
這個是幹嘛用的??
#include<time.h>
複製代碼
作者:
trtc008056
時間:
2010-7-28 01:49 PM
#include<time.h>
複製代碼
是一個跟時間有關的標頭檔
用在第11行
srand(time(NULL));
複製代碼
time(NULL));是取得從1970年1月1日到今天累積的秒數
將他引入srand();時會產生亂數
以至於rand();被呼叫時會產生出不同的數字
應該是這樣把,如果沒記錯的話= =
請參考這一篇
http://www.cplusplus.com/reference/clibrary/cstdlib/srand/
歡迎光臨 伊莉討論區 (http://a401.file-static.com/)
Powered by Discuz!