看板 NTUBIME101HW 關於我們 聯絡資訊
#include <iostream> #include <iomanip> #include <ctime> #define swap(x,y) {int t=x;x=y;y=t;}//定義交換的函式 using namespace std; void shuffle(int [], int); //改成用教授上課說的方式 int main() { srand(time(NULL)); const int MAX = 52; //設定最大值(陣列個數) int poker[MAX]; char sign; for(int i=0;i<MAX;i++) poker[i] = i+1;//把牌排好 shuffle(poker,MAX); cout << "player1\tplayer2\tplayer3\tplayer4\n" << "-------\t-------\t-------\t-------\n"; for(int i=0;i<MAX;i++)//輸出牌 { sign = poker[i]%4 + 3;//請看ASCii的3~6號 cout << setw(2) << sign << setw(3) << poker[i]%13+1 << "\t"; if((i+1)%4==0) cout << endl; } system("pause"); return 0; } void shuffle(int poker_in[], const int MAX)//洗牌函式 { int change1,change2,temp; for(int i=0;i<10000;i++) { change1 = rand()%MAX; change2 = rand()%MAX; //如果用了最前面定義的那個swap()就可省下下面這三行 temp = poker_in[change2]; poker_in[change2] = poker_in[change1]; poker_in[change1] = temp; //亂數交換牌換一萬次總該乾淨了吧 //用法就是以下這樣 //swap(poker_in[change1],poker_in[change2]); //這樣就可以交換兩數了 //其實用template就可以寫出甚麼形態都可以交換的函式 } } 看看就好... 因為這程式用的東西都在考試範圍裡ˊˋ 想說陣列和函式的應用(8-3)老師堅持會考... 這隻程式難度比樂透低 應該不難了解@@ 祝大家考試順利! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.7.59
ck940560:計中卷王! 快推 11/18 14:33
ck940560:原來有現成的花色符號...看到標題我還以為要用中文敘述.. 11/18 14:34
※ 編輯: sb0917 來自: 125.232.115.72 (11/18 21:21)
mosdavid:卷王C++直接100 11/19 07:33
sb0917:不要逼我去亂入農藝板喔... 11/19 15:29
xx7983:XDDDD 11/19 16:55
honoYang:科科 11/19 17:47
ck940560:void shuffle(int []);中括號前面為什麼不用放東西啊? 11/19 18:52
ck940560:int poker_in[]還有這個陣列大小是未定義嗎? 11/19 18:52
sb0917:助教出現了~! 11/19 19:57
※ 編輯: sb0917 來自: 140.112.7.59 (11/19 19:59)