描述
假設這裡有36張撲克牌,分別為a1~a9,b1~b9,c1~c9,d1~d9,其中a代表方片,b代表草花,c代表紅桃,d代表黑桃,那麼,設定如下的排序規則:
1.對於兩張卡牌,x1y1與x2y2,x1與x2表示a~d,y1與y2表示1~9,如果x1與x2不同,那麼依照d>c>b>a的方式進行排序
2.假如有x1與x2相同時,那麼就比較y1與y2的大小。
例如,對於如下的四張牌,有如下的公升序排序結果:
d3,c4,a4,c1
公升序排序的結果為a4,c1,c4,d3
有人提出了如下的排序策略:
先建立9個佇列,用於存放點數的大小,將卡牌依點數存放入各自的佇列之中,然後再按佇列1到佇列9依次出隊。
例如,對於上面的結果,依次進隊後,結果如下:
佇列1:c1;佇列3:d3,佇列4:c4,a4
將其依次出隊後,結果為c1,d3,c4,a4
然後,再建立4個佇列,用於存放花色。將卡牌依花色a~d存放入佇列1~4中,然後再按佇列1到佇列4依次出隊。
例如,對於上面剛剛出隊的序列c1,d3,c4,a4,將其依次進隊,結果如下:
佇列1:a4;佇列3:c1,c4;佇列4:d3
將其依次出隊後,結果為a4,c1,c4,d3,排序結束。
請根據上面的演算法,編寫乙個用佇列對撲克牌排序的程式,要求依照上面的排序規則,根據先花色後點數的方法進行排序。
輸入輸入分為兩行,第一行為乙個整數n,表示一共有n張牌(1<=n<=100)
第二行用xy的形式表示每一張牌,其中x為a~d,y為1~9
輸出輸出三個部分
第乙個部分為第一次進隊出隊的結果,用queue1:...表示,共9行,結果用空格分隔,下同
第二部分為第二次進隊出隊的結果,用queuea:...表示,共4行
第三部分為一行,即將卡牌排序後的結果(公升序排序)
樣例輸入
8d8 a6 c3 b8 c5 a1 b5 d3
樣例輸出
queue1:a1queue2:queue3:c3 d3queue4:queue5:c5 b5queue6:a6queue7:queue8:d8 b8queue9:queuea:a1 a6queueb:b5 b8queuec:c3 c5queued:d3 d8a1 a6 b5 b8 c3 c5
d3 d8
解題:#include #include #include #include using namespace std;
class poker
;int main()
{int n=0,p_temp;
char c_temp;
queuepokqueue;
queuepokpoint[10];
queuepokcolor[5];
scanf("%d",&n);
getchar();
for(int i=0;i
撲克牌排序 趣味撲克牌
一提到撲克牌,我們就想到神秘的魔術表演,撲克牌上有很多形狀和數字,裡面蘊藏了很多數學知識哦!瞧 subway的小朋友們正在進行趣味撲克牌的遊戲呢!好多撲克牌啊!撲克牌中間怎麼是空的呢?哇,還有這麼小的撲克牌呢!一看到teacher手中的撲克牌,小傢伙們乙個個的都興奮起來,迫不及待想要分享自己的見解呢...
撲克牌排序 tkinter模擬撲克牌和狼人殺發牌
今天我們用tkinter的canvas畫布實現撲克牌的隨機發牌 將54張牌隨機發給四位牌手,在螢幕上顯示每位牌手的牌,利用canvas將發牌結果顯示出來。需要準備的是54張撲克牌的 gif或者png,jpg的話要經過額外的轉換 為了保證最終的牌序是按照由小到大排列的,編號要按照aaaa 2222 k...
洗撲克牌 亂數排序
洗撲克牌 亂數排列 說明 洗撲克牌的原理其實與亂數排列是相同的,都是將一組數字 例如1 n 打亂重新排列,只 不過洗撲克牌多了乙個花色判斷的動作而已。解法 初學者通常會直接想到,隨機產生1 n的亂數並將之存入陣列中,後來產生的亂數存入陣列 前必須先檢查陣列中是否已有重複的數字,如果有這個數就不存入,...