一道智力遊戲趣味程式設計題

2021-07-24 21:49:30 字數 1378 閱讀 5595

題目如下:

一副撲克有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 集合元素被移除...