題目如下:
一副撲克有52張牌,打橋牌時應該把牌分配給四個人,請先設計程式模擬發牌的過程。
要求:黑桃用s(spaces)表示;紅桃用h(heart)表示;方塊用d(diamond)表示;梅花用c(clubs)表示;
問題分析:
按照打橋牌的規則,每人應該發到13張牌,在人工發牌時,應該先進行「洗牌」,再把牌按一定的順序發給每乙個人。為了方便計算機進行模擬,
可以將人工發牌的方式進行修改:先確定好發牌順序,1,2,3,4,
將52張牌順序編號,
黑桃2對應數字0,紅桃2對應數字1,方塊2對應2,梅花2對應3;
黑桃3對應數字4,紅桃3對應數字5,方塊3對用6,梅花3對應7;
然後從52張牌中隨機為每個人發牌;
此時可以使用c語言函式庫中的隨機函式產生1-51之間的數,來進行發牌的模擬;
程式如下:
#include #include void p (int *b, char * n) }
printf("\n\003");
for(i = 0; i < 13; i++) }
printf("\n\004");
for(i = 0; i < 13; i++) }
printf("\n\005");
for(i = 0; i , 13; i++) }
printf("\n"); }
int comp(int *j, int *i)
int main();
int a[53];
int b1[13];
int b2[13];
int b3[13];
int b4[13];
int b11 = 0;
int b22 = 0;
int b33 = 0;
int b44 = 0;
int t = 1;
int flag;
int m;
int i;
while(t <= 52)
}if(flag)
else if(t % 4 == 1)
else if(t % 4 == 2)
else if(t % 4 == 3)
} }
qsotr(b1,13,sizeof(int),comp);
qsotr(b2,13,sizeof(int),comp);
qsotr(b3,13,sizeof(int),comp);
qsotr(b4,13,sizeof(int),comp);
p(b1,n);
p(b2,n);
p(b3,n);
p(b4,n);
return 0;
}
一道智力題
我害怕自己被黑暗吞噬,企圖寫一些似乎無關緊要的東西,分開注意力 其實我最近發現自己有個特點,就是時不時會回想過去遇到過的一些問題,得出一些新的結論或者尋求一些新的解法,我的問題也不一定是什麼難題,有時無非是些能稍微動動腦筋的東西罷了。但不管怎樣,我自己還是挺喜歡自己這個特點的,尤其在這個迷惘的季節。...
記一道智力題
首先,由題意三個數都為正整數,且某兩個數的和等於第三個,且第一輪提問中三個人都說不確定可知,三個人中沒有兩兩相同的數存在。這樣就排除了a,d 然後看選項b 站在第三個人的立場,看到其他兩個人是36,108則他自己可以為144或72。這時第三個人如果假設他是72,那麼在108那個人的眼中本來為36或1...
一道程式設計題
題目要求 1 自己給定乙個集合 元數個數不得少於10個 2 讓使用者任一輸入乙個整數 3 根據使用者輸入的整數,移除集合中相應的元素 請根據示例找出元素移除的規律 4 運算結束後,集合中所有元素均被移除 示例 集合元素為 a b c d e f g h i j 使用者輸入的整數為 3 集合元素被移除...