當前位置:首頁 » 編程語言 » c語言撲克牌編程題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言撲克牌編程題

發布時間: 2023-05-29 04:55:41

c語言程序設計撲克牌游戲

定義一個結構類型表示一張牌,結構包含3個成員,第一個成員char:取值2,3~K,A表示牌名字,第二個成員int:取值2~14表示牌真實大小。第三個成員:結構鏈表指針。
寫一個初始化函數,定義52大小的結構數組,成員值初值分別和牌對應,遍歷數組並將每個元素的鏈表指針依次指向下一個元素地址。這樣得到一個初始鏈表。(相當於一盒新牌)
所有涉及隨機數都用rand函數,洗牌分四份就是循環取隨機數m=1~n,n是隨循環自減,初值52,直到n變成0。每隨一次循環就從初始鏈表中遍歷取出對應第m個節點,並從初始鏈表中將這個節點斷開(既前一個節點指針直接指向後一個節點指針)。每取13張就組成一個新的鏈表。這樣獲得4個新鏈表分別表示4個玩家。
最後出牌就是分別遍歷自己的鏈表,利用循環取牌比較結構數值大小。(取出的牌要從鏈表斷開和上面一樣,你把取出節點寫成獨立函數就能反復使用)。

㈡ 求C語言大神解答,撲克牌

根號n下取整為答案
對於第k張牌,k的約數為奇數個為翻轉狀態,約數為偶數個為原狀態。
對於k而言他有約數x,則有約數k/x。因此當x²≠k,都是成對出現的。也就是說只有完全平方數是有奇數個約數,我們只要找有幾個完全平方數即可。

㈢ c語言編程題!!急求!! 關於撲克牌(要完整代碼最好有解釋)

#include<stdio.h>
int asc(char p[][3]);
intisError(char p1[][3],char p2[][3]);
void compare(char p3[][3],char p4[][3]);
int main()
{
char a[3][3],b[3][3],c;
int i,j,resulta,resultb,result,flag=0;
printf("請輸入A的撲克牌,撲克牌之間以空格隔開,然後按下回車: ");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c=getchar();
if(c!=' '&&c!=10)
{
if(j==0)
{
if(c=='H'||c=='S'||c=='D'||c=='C')
;
else
{
printf("Input Error! ");
return 0;
}
}
if(j==1)
{
if(c=='J'||c=='Q'||c=='K'||c=='A'||(c>='1'&&c<='9'))
{
if(c=='J')
c=59;
if(c=='Q')
c=60;
if(c=='K')
c=61;
if(c=='A')
c=62;
if(c=='1')
flag=1;
}
else
{
printf("Input Error! ");
return 0;
}
}
if(j==2)
{
if(c!='0')
{
printf("Input Error! ");
return 0;
}else
{
flag=0;
c=58;
a[i][1]=c;
break;
}

}
a[i][j]=c;
}else
{
if(flag==1)
{
printf("Input Error! ");
return 0;
}
if(j==2)
break;
j--;
}
}
}
printf("請輸入B的撲克牌,撲克牌之間以空格隔開,然後按下回車: ");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c=getchar();
if(c!=' '&&c!=10)
{
if(j==0)
{
if(c=='H'||c=='S'||c=='D'||c=='C')
;
else
{
printf("Input Error! ");
return 0;
}
}
if(j==1)
{
if(c=='J'||c=='Q'||c=='K'||c=='A'||(c>='1'&&c<='9'))
{
if(c=='J')
c=59;
if(c=='Q')
c=60;
if(c=='K')
c=61;
if(c=='A')
c=62;
if(c=='1')
flag=1;
}
else
{
printf("Input Error! ");
return 0;
}
}
if(j==2)
{
if(c!='0')
{
printf("Input Error! ");
return 0;
}else
{
flag=0;
c=58;
b[i][1]=c;
break;
}

}
b[i][j]=c;
}else
{
if(flag==1)
{
printf("Input Error! ");
return 0;
}
if(j==2)
break;
j--;
}
}
}
resulta=asc(a);
if(resulta==0)
return 0;
resultb=asc(b);
if(resultb==0)
return 0;
result=isError(a,b);
if(result==0)
return 0;
compare(a,b);
for(i=0;i<3;i++)
{
a[i][2]='';
b[i][2]='';
}
printf("A: ");
for(i=0;i<3;i++)
{
if(a[i][1]>'2'&&a[i][1]<'9')
printf("%s ",a[i]);
else
{
if(a[i][1]==58)
{
printf("%c",a[i][0]);
printf("10 ");
}
if(a[i][1]==59)
{
printf("%c",a[i][0]);
printf("J ");
}
if(a[i][1]==60)
{
printf("%c",a[i][0]);
printf("Q ");
}
if(a[i][1]==61)
{
printf("%c",a[i][0]);
printf("K ");
}
if(a[i][1]==62)
{
printf("%c",a[i][0]);
printf("A ");
}
}
}
printf(" B: ");
for(i=0;i<3;i++)
{
if(b[i][1]>'2'&&b[i][1]<'9')
printf("%s ",b[i]);
else
{
if(b[i][1]==58)
{
printf("%c",b[i][0]);
printf("10 ");
}
if(b[i][1]==59)
{
printf("%c",b[i][0]);
printf("J ");
}
if(b[i][1]==60)
{
printf("%c",b[i][0]);
printf("Q ");
}
if(b[i][1]==61)
{
printf("%c",b[i][0]);
printf("K ");
}
if(b[i][1]==62)
{
printf("%c",b[i][0]);
printf("A ");
}
}
}
printf(" ");
return 0;
}

int asc(char p[][3])
{
int m,temp[2];
if(p[0][1]==p[1][1])
{
if(p[0][0]==p[1][0])
{
printf("Input Error! ");
return 0;
}
}
if(p[1][1]==p[2][1])
{
if(p[1][0]==p[2][0])
{
printf("Input Error! ");
return 0;
}
}
if(p[0][1]==p[2][1])
{
if(p[0][0]==p[2][0])
{
printf("Input Error! ");
return 0;
}
}
m=0;
if(p[m][1]<p[m+1][1])
{
temp[0]=p[m][0];
temp[1]=p[m][1];
p[m][0]=p[m+1][0];
p[m][1]=p[m+1][1];
p[m+1][0]=temp[0];
p[m+1][1]=temp[1];
}
if(p[m][1]<p[m+2][1])
{
temp[0]=p[m][0];
temp[1]=p[m][1];
p[m][0]=p[m+2][0];
p[m][1]=p[m+2][1];
p[m+2][0]=temp[0];
p[m+2][1]=temp[1];
}
m=1;
if(p[m][1]<p[m+1][1])
{
temp[0]=p[m][0];
temp[1]=p[m][1];
p[m][0]=p[m+1][0];
p[m][1]=p[m+1][1];
p[m+1][0]=temp[0];
p[m+1][1]=temp[1];
}
return 1;
}

intisError(char p1[][3],char p2[][3])
{
int n;
for(n=0;n<3;n++)
{
if(p1[n][0]==p2[0][0]&&p1[n][1]==p2[0][1])
{
printf("Input Error! ");
return 0;
}
if(p1[n][0]==p2[n][0]&&p1[1][1]==p2[1][1])
{
printf("Input Error! ");
return 0;
}
if(p1[n][0]==p2[n][0]&&p1[2][1]==p2[2][1])
{
printf("Input Error! ");
return 0;
}
}
return 1;
}

void compare(char p3[][3],char p4[][3])
{
int x;
for(x=0;x<3;x++)
{
if(p3[x][1]==p4[x][1])
continue;
if(p3[x][1]>p4[x][1]){
printf("Winner is A! ");
return;
}
if(p3[x][1]<p4[x][1]){
printf("Winner is B! ");
return;
}
}
printf("Winner is X! ");
}

這次對了。

㈣ C語言編程題:撲克牌排序問題

#include<stdlib.h>
#include<stdio.h>
#include<time.h>

#defineColorshort
#defineRed0
#defineGreen1
#defineBlue2
#defineWhite3
#definePink4
#definePurple5

#defineSuitshort
#defineSpades1
#defineHearts0
#defineDiamonds2
#defineClubs3

#defineJ11
#defineQ12
#defineK13
#defineA1
#defineSmallJoker14
#defineBigJoker15

typedefstruct{
intranking;
Colorcolor;
Suitsuit;
}Card;

voidcreate_cards(Cardcards[],intsize){
inti,j;
Cardtemp;
for(i=0;i<size;i++){
cards[i].color=i/54;
cards[i].suit=i%54%4;
cards[i].ranking=i%拍好54>=52?i%54-53+BigJoker:i%54/4+1;
}
for(i=0;i<size;i++){
j=rand()%(size-i)+i;
if(j!=i){
temp=cards[i];
cards[i]=cards[j];
cards[j]=temp;
}
}
}

voidprint_card(Card*card,FILE*file){
constchar*color[]={"紅","綠","藍","白","粉","紫"};
constchar*suit[]={"紅心","黑桃","方塊","梅花"};
constchar*ranking[]={"mmy","A","2","3"襲槐鉛,"4","5","6","7","8","9","10","J","Q","K","小王","大王"};
fprintf(file,"%s底的",color[card->color]);
if(card->ranking<SmallJoker){
fprintf(file,"%s",suit[card->suit]);
}
fprintf(file,"%s ",ranking[card->ranking]);
}

intcmp(constvoid*a,constvoid*b){
Card*ca=(Card*)a;
Card*cb=(Card*)b;
intranking[2]={ca->ranking,cb->ranking},i;
for(i=0;i<2;i++){
if(ranking[i]>=SmallJoker){
ranking[i]+=明絕2;
}
elseif(ranking[i]<=2){
ranking[i]+=13;
}
}
if(ranking[0]!=ranking[1]){
returnranking[0]-ranking[1];
}
if(ca->color!=cb->color){
returnca->color-cb->color;
}
returnca->suit-cb->suit;
}

voidsort_all_cards(Cardcards[],intsize){
qsort(cards,size,sizeof(cards[0]),cmp);
}

intmain(){
constintsize=54*6;
inti;
Cardcards[size];
FILE*before,*after;
srand((unsignedint)time(NULL));
create_cards(cards,size);
before=fopen("Before.txt","w");
if(before==NULL){
printf("ErroropenBefore.txt ");
exit(-1);
}
for(i=0;i<size;i++){
print_card(cards+i,before);
}
fclose(before);
sort_all_cards(cards,size);
after=fopen("After.txt","w");
if(before==NULL){
printf("ErroropenAfter.txt ");
exit(-1);
}
for(i=0;i<size;i++){
print_card(cards+i,after);
}
fclose(after);
return0;
}

Before.txt (僅供參考)

白底的方塊3
紫底的梅花K
綠底的方塊9
紅底的梅花10
綠底的黑桃K
白底的方塊10
綠底的紅心3
紫底的梅花A
藍底的方塊10
粉底的黑桃A
藍底的黑桃A
藍底的黑桃8
粉底的梅花7
紫底的黑桃4
紫底的梅花8
紫底的梅花2
白底的梅花K
藍底的紅心2
藍底的黑桃6
紅底的紅心Q
粉底的方塊K
藍底的黑桃Q
綠底的紅心10
紅底的黑桃9
粉底的黑桃K
白底的方塊J
紫底的紅心10
紫底的梅花Q
紅底的黑桃4
綠底的黑桃A
綠底的黑桃9
白底的方塊8
藍底的梅花6
白底的黑桃J
綠底的方塊4
紫底的紅心2
粉底的黑桃10
紫底的紅心Q
紅底的黑桃Q
粉底的黑桃6
綠底的梅花2
白底的方塊K
藍底的梅花J
紅底的方塊A
藍底的梅花3
粉底的梅花4
紫底的紅心4
紫底的紅心5
白底的方塊5
藍底的大王
綠底的黑桃8
紅底的黑桃5
綠底的紅心9
綠底的方塊7
白底的小王
藍底的方塊4
紫底的梅花5
綠底的方塊J
紫底的梅花10
白底的紅心2
紫底的黑桃6
白底的方塊9
紅底的方塊7
綠底的大王
紅底的紅心5
粉底的紅心J
藍底的黑桃3
藍底的紅心10
白底的紅心3
粉底的梅花6
綠底的黑桃7
白底的紅心10
綠底的方塊5
綠底的黑桃4
藍底的紅心3
白底的梅花8
紅底的黑桃7
白底的梅花A
藍底的方塊2
紫底的梅花J
粉底的梅花A
紫底的方塊Q
紅底的黑桃A
綠底的紅心8
綠底的紅心J
白底的方塊A
藍底的方塊5
粉底的方塊2
粉底的黑桃7
藍底的方塊3
白底的方塊6
紅底的方塊8
綠底的梅花A
藍底的方塊A
紫底的方塊5
紫底的方塊J
粉底的方塊10
粉底的梅花8
粉底的梅花10
紅底的紅心K
白底的大王
粉底的紅心Q
紫底的方塊4
藍底的紅心Q
藍底的梅花2
紫底的小王
白底的梅花J
綠底的紅心7
藍底的梅花Q
綠底的梅花10
紅底的梅花3
粉底的紅心7
紫底的方塊10
綠底的黑桃6
紅底的梅花4
藍底的梅花A
紅底的黑桃6
藍底的黑桃9
綠底的小王
紫底的紅心7
白底的紅心K
粉底的梅花Q
白底的紅心9
紫底的方塊A
紅底的紅心4
白底的黑桃9
綠底的梅花4
紅底的方塊4
綠底的紅心4
紅底的黑桃8
紅底的紅心7
紫底的方塊2
白底的黑桃3
藍底的黑桃10
紅底的梅花2
紅底的方塊J
白底的黑桃2
粉底的黑桃5
綠底的黑桃Q
紫底的黑桃8
綠底的紅心K
藍底的黑桃J
粉底的紅心9
粉底的梅花J
紫底的黑桃7
白底的梅花4
藍底的紅心8
紫底的方塊6
藍底的黑桃2
藍底的黑桃K
藍底的黑桃7
藍底的黑桃4
紅底的方塊10
紅底的黑桃3
粉底的紅心8
紅底的梅花7
粉底的梅花5
粉底的紅心2
綠底的方塊8
紅底的黑桃10
紅底的梅花6
紫底的梅花7
白底的黑桃A
紅底的梅花5
白底的黑桃4
粉底的梅花K
綠底的方塊Q
紅底的方塊K
紫底的方塊K
粉底的方塊A
紫底的紅心6
粉底的梅花3
粉底的黑桃4
綠底的黑桃2
綠底的方塊10
綠底的梅花K
紅底的紅心3
粉底的黑桃8
紅底的梅花8
粉底的黑桃Q
紅底的大王
紫底的黑桃Q
綠底的黑桃5
藍底的梅花8
白底的梅花6
紅底的方塊2
粉底的紅心6
紅底的黑桃J
綠底的紅心5
綠底的紅心2
藍底的紅心7
紫底的方塊8
藍底的方塊8
白底的黑桃Q
藍底的紅心4
綠底的方塊A
粉底的方塊5
紅底的梅花Q
紫底的黑桃A
粉底的方塊9
紫底的梅花9
白底的黑桃5
藍底的方塊K
白底的黑桃7
藍底的方塊6
藍底的黑桃5
白底的梅花3
粉底的黑桃2
粉底的方塊8
綠底的梅花3
白底的黑桃10
紫底的黑桃2
紅底的黑桃2
藍底的梅花4
紅底的梅花K
綠底的梅花Q
藍底的方塊Q
藍底的梅花9
紫底的黑桃J
綠底的紅心6
粉底的紅心10
藍底的梅花K
綠底的梅花J
紅底的紅心2
紅底的紅心6
粉底的黑桃9
藍底的紅心A
綠底的梅花8
紅底的紅心A
紫底的方塊7
白底的紅心4
紫底的大王
藍底的紅心5
綠底的黑桃J
紫底的紅心3
粉底的方塊Q
白底的紅心A
白底的梅花10
藍底的紅心J
綠底的梅花5
白底的梅花7
白底的紅心J
紫底的黑桃10
粉底的紅心A
紅底的紅心8
紫底的梅花3
粉底的梅花2
綠底的紅心Q
白底的黑桃K
藍底的方塊J
綠底的方塊2
白底的梅花Q
綠底的方塊K
粉底的黑桃3
綠底的梅花7
紅底的方塊6
紫底的黑桃9
紅底的梅花A
紫底的紅心A
粉底的紅心5
粉底的紅心4
粉底的紅心3
藍底的紅心9
紫底的紅心K
綠底的黑桃3
綠底的梅花6
紅底的紅心J
白底的方塊Q
粉底的大王
白底的黑桃8
藍底的梅花5
粉底的小王
白底的紅心7
紫底的方塊3
紫底的黑桃3
白底的梅花9
白底的方塊2
紅底的方塊3
藍底的方塊9
粉底的方塊6
紅底的方塊9
白底的方塊7
紫底的紅心9
白底的紅心Q
粉底的方塊7
綠底的梅花9
白底的方塊4
紫底的黑桃5
白底的梅花5
粉底的梅花9
紫底的黑桃K
紫底的紅心J
紅底的梅花9
紅底的方塊5
白底的紅心5
粉底的方塊4
紫底的方塊9
綠底的紅心A
綠底的方塊3
紅底的方塊Q
粉底的方塊3
藍底的紅心K
藍底的梅花7
紅底的黑桃K
綠底的方塊6
藍底的方塊7
白底的紅心8
藍底的小王
紅底的紅心10
白底的紅心6
白底的梅花2
紅底的梅花J
藍底的梅花10
紅底的紅心9
綠底的黑桃10
藍底的紅心6
粉底的方塊J
紅底的小王
粉底的紅心K
紫底的梅花6
白底的黑桃6
紫底的梅花4
粉底的黑桃J
紫底的紅心8

After.txt

紅底的紅心3
紅底的黑桃3
紅底的方塊3
紅底的梅花3
綠底的紅心3
綠底的黑桃3
綠底的方塊3
綠底的梅花3
藍底的紅心3
藍底的黑桃3
藍底的方塊3
藍底的梅花3
白底的紅心3
白底的黑桃3
白底的方塊3
白底的梅花3
粉底的紅心3
粉底的黑桃3
粉底的方塊3
粉底的梅花3
紫底的紅心3
紫底的黑桃3
紫底的方塊3
紫底的梅花3
紅底的紅心4
紅底的黑桃4
紅底的方塊4
紅底的梅花4
綠底的紅心4
綠底的黑桃4
綠底的方塊4
綠底的梅花4
藍底的紅心4
藍底的黑桃4
藍底的方塊4
藍底的梅花4
白底的紅心4
白底的黑桃4
白底的方塊4
白底的梅花4
粉底的紅心4
粉底的黑桃4
粉底的方塊4
粉底的梅花4
紫底的紅心4
紫底的黑桃4
紫底的方塊4
紫底的梅花4
紅底的紅心5
紅底的黑桃5
紅底的方塊5
紅底的梅花5
綠底的紅心5
綠底的黑桃5
綠底的方塊5
綠底的梅花5
藍底的紅心5
藍底的黑桃5
藍底的方塊5
藍底的梅花5
白底的紅心5
白底的黑桃5
白底的方塊5
白底的梅花5
粉底的紅心5
粉底的黑桃5
粉底的方塊5
粉底的梅花5
紫底的紅心5
紫底的黑桃5
紫底的方塊5
紫底的梅花5
紅底的紅心6
紅底的黑桃6
紅底的方塊6
紅底的梅花6
綠底的紅心6
綠底的黑桃6
綠底的方塊6
綠底的梅花6
藍底的紅心6
藍底的黑桃6
藍底的方塊6
藍底的梅花6
白底的紅心6
白底的黑桃6
白底的方塊6
白底的梅花6
粉底的紅心6
粉底的黑桃6
粉底的方塊6
粉底的梅花6
紫底的紅心6
紫底的黑桃6
紫底的方塊6
紫底的梅花6
紅底的紅心7
紅底的黑桃7
紅底的方塊7
紅底的梅花7
綠底的紅心7
綠底的黑桃7
綠底的方塊7
綠底的梅花7
藍底的紅心7
藍底的黑桃7
藍底的方塊7
藍底的梅花7
白底的紅心7
白底的黑桃7
白底的方塊7
白底的梅花7
粉底的紅心7
粉底的黑桃7
粉底的方塊7
粉底的梅花7
紫底的紅心7
紫底的黑桃7
紫底的方塊7
紫底的梅花7
紅底的紅心8
紅底的黑桃8
紅底的方塊8
紅底的梅花8
綠底的紅心8
綠底的黑桃8
綠底的方塊8
綠底的梅花8
藍底的紅心8
藍底的黑桃8
藍底的方塊8
藍底的梅花8
白底的紅心8
白底的黑桃8
白底的方塊8
白底的梅花8
粉底的紅心8
粉底的黑桃8
粉底的方塊8
粉底的梅花8
紫底的紅心8
紫底的黑桃8
紫底的方塊8
紫底的梅花8
紅底的紅心9
紅底的黑桃9
紅底的方塊9
紅底的梅花9
綠底的紅心9
綠底的黑桃9
綠底的方塊9
綠底的梅花9
藍底的紅心9
藍底的黑桃9
藍底的方塊9
藍底的梅花9
白底的紅心9
白底的黑桃9
白底的方塊9
白底的梅花9
粉底的紅心9
粉底的黑桃9
粉底的方塊9
粉底的梅花9
紫底的紅心9
紫底的黑桃9
紫底的方塊9
紫底的梅花9
紅底的紅心10
紅底的黑桃10
紅底的方塊10
紅底的梅花10
綠底的紅心10
綠底的黑桃10
綠底的方塊10
綠底的梅花10
藍底的紅心10
藍底的黑桃10
藍底的方塊10
藍底的梅花10
白底的紅心10
白底的黑桃10
白底的方塊10
白底的梅花10
粉底的紅心10
粉底的黑桃10
粉底的方塊10
粉底的梅花10
紫底的紅心10
紫底的黑桃10
紫底的方塊10
紫底的梅花10
紅底的紅心J
紅底的黑桃J
紅底的方塊J
紅底的梅花J
綠底的紅心J
綠底的黑桃J
綠底的方塊J
綠底的梅花J
藍底的紅心J
藍底的黑桃J
藍底的方塊J
藍底的梅花J
白底的紅心J
白底的黑桃J
白底的方塊J
白底的梅花J
粉底的紅心J
粉底的黑桃J
粉底的方塊J
粉底的梅花J
紫底的紅心J
紫底的黑桃J
紫底的方塊J
紫底的梅花J
紅底的紅心Q
紅底的黑桃Q
紅底的方塊Q
紅底的梅花Q
綠底的紅心Q
綠底的黑桃Q
綠底的方塊Q
綠底的梅花Q
藍底的紅心Q
藍底的黑桃Q
藍底的方塊Q
藍底的梅花Q
白底的紅心Q
白底的黑桃Q
白底的方塊Q
白底的梅花Q
粉底的紅心Q
粉底的黑桃Q
粉底的方塊Q
粉底的梅花Q
紫底的紅心Q
紫底的黑桃Q
紫底的方塊Q
紫底的梅花Q
紅底的紅心K
紅底的黑桃K
紅底的方塊K
紅底的梅花K
綠底的紅心K
綠底的黑桃K
綠底的方塊K
綠底的梅花K
藍底的紅心K
藍底的黑桃K
藍底的方塊K
藍底的梅花K
白底的紅心K
白底的黑桃K
白底的方塊K
白底的梅花K
粉底的紅心K
粉底的黑桃K
粉底的方塊K
粉底的梅花K
紫底的紅心K
紫底的黑桃K
紫底的方塊K
紫底的梅花K
紅底的紅心A
紅底的黑桃A
紅底的方塊A
紅底的梅花A
綠底的紅心A
綠底的黑桃A
綠底的方塊A
綠底的梅花A
藍底的紅心A
藍底的黑桃A
藍底的方塊A
藍底的梅花A
白底的紅心A
白底的黑桃A
白底的方塊A
白底的梅花A
粉底的紅心A
粉底的黑桃A
粉底的方塊A
粉底的梅花A
紫底的紅心A
紫底的黑桃A
紫底的方塊A
紫底的梅花A
紅底的紅心2
紅底的黑桃2
紅底的方塊2
紅底的梅花2
綠底的紅心2
綠底的黑桃2
綠底的方塊2
綠底的梅花2
藍底的紅心2
藍底的黑桃2
藍底的方塊2
藍底的梅花2
白底的紅心2
白底的黑桃2
白底的方塊2
白底的梅花2
粉底的紅心2
粉底的黑桃2
粉底的方塊2
粉底的梅花2
紫底的紅心2
紫底的黑桃2
紫底的方塊2
紫底的梅花2
紅底的小王
綠底的小王
藍底的小王
白底的小王
粉底的小王
紫底的小王
紅底的大王
綠底的大王
藍底的大王
白底的大王
粉底的大王
紫底的大王

㈤ C語言 關於撲克牌的編程調試問題

printf的時候第二個數是ptNumber[i]啦......

只寫ptNumber的話就相當於ptNumber[0]的地址了,所以這五個輸出都孫核一樣,都是數組辯閉首則灶掘位地址。

㈥ 用c語言創建一個數組用來表示52張撲克牌,然後洗牌後輸出,要求每行輸出13張

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<ctime>
#include<cstdlib>;
usingnamespacestd;
inta[55];
voidpt(intid){//printacardbyid
//printcolor
if(id%4==0)printf("A-");
if(id%4==1)printf("B-");
if(id%4==2)printf("C-");
if(id%4==3)printf("D-");
//printnumber
if(id/4==0)printf("A");
elseif(id/4+1<=10)printf("%d",id/4+1);
if(id/4==10)printf("J");
if(id/4==11)printf("Q");
if(id/4==12)printf("K");
}
voidshuffle(){
for(inti=0;i<52;i++)
swap(a[i],a[rand()%(i+1)]);//randomshuffle
}
intmain(){
srand((unsignedint)time(NULL));
for(inti=0;i<52;i++)
a[i]=i;
shuffle();
for(inti=0;i<52;i++){
pt(a[i]);
if(i%13==12)printf(" ");
}
return0;
}

為每張牌定義id

隨機洗牌

㈦ C語言:52張撲克牌問題

調試好,答案是7張

#include<stdio.h>
main()
{
int pk[53],i,j,count;
for(i=1;i<=52;i++)
pk[i]=0;/*0 up*/
for(i=2;i<=52;i++)
{
for(j=i;j<=52;j++)
if(j%i==0)
if(pk[j]==0)pk[j]=1;
else pk[j]=0;
}
count=0;
for(i=1;i<=52;i++)
if(pk[i]==0) count++;

printf("%d",count);
}

㈧ 編寫C語言程序,模擬將一副撲克牌54張隨機分給4個人 (如何表達不同花色和大小,如何高效洗牌)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int poke[13][4],joker[2],last_four_card[4]; //定義四類十三張牌、雙王
int i,j,card,count,tank[54],player[20],computer[2][20];
bool flag;
srand(time(NULL)); //初始化隨機種子
for(i=0;i<54;i++)
tank[i]=-1; //初始化容器
for(i=0;i<54;i++)
{
flag=1;
while(flag)
{
flag=0;
card=rand()%54;
for(j=0;j<=i;j++)
if(card==tank[j]) flag=1;
}
tank[i]=card;
}

count=0;
for(i=0;i<54;i++)
{
if(tank[i]==52) printf("jok ");
else if(tank[i]==53) printf("JOK ");
else if(tank[i]%13==0) printf("%c%c ",tank[i]/13+3,'A');
else if(tank[i]%13==10) printf("%c%c ",tank[i]/13+3,'J');
else if(tank[i]%13==11) printf("%c%c ",tank[i]/13+3,'Q');
else if(tank[i]%13==12) printf("%c%c ",tank[i]/13+3,'K');
else if(tank[i]%13<10) printf("%c%-2d ",tank[i]/13+3,tank[i]%13+1);
count++;
if(count%20==0) printf("\n");
}
count=0;
for(i=0;i<16;i++)
{
player[i]=tank[i];
computer[0][i]=tank[i+16];
computer[1][i]=tank[i+32];
}
for(i=0;i<4;i++)
last_four_card[i]=tank[53-i];
printf("\n\n你的牌是:\n\n");
for(i=0;i<16;i++)
{
if(player[i]==52) printf("jok ");
else if(player[i]==53) printf("JOK ");
else if(player[i]%13==0) printf("%c%c ",player[i]/13+3,'A');
else if(player[i]%13==10) printf("%c%c ",player[i]/13+3,'J');
else if(player[i]%13==11) printf("%c%c ",player[i]/13+3,'Q');
else if(player[i]%13==12) printf("%c%c ",player[i]/13+3,'K');
else if(player[i]%13<10) printf("%c%-2d ",player[i]/13+3,player[i]%13+1);
count++;
if(count%20==0) printf("\n");
}
getchar();
getchar();
return 0;
}

以前無聊寫的 給你作參考吧

㈨ C語言編程題:撲克牌排序問題

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

typedefstructcard{
inttype;//type0:梅花,1:方片,2:紅桃,3:黑桃,4:王
intpoint;//type=0--3時,point=2--14,type=4時,point=0--1
}CARD;

voidsort(CARDa[],intn){
inti,j,k;
CARDt;
for(i=0;i<n-1;++i){
k=i;
for(j=i+1;j<n;++j){
if(a[k].point>a[j].point)
k=j;
}
if(k!=i){
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
}

voidshow(CARDa[],intn){
inti;
chartype[4][5]={"梅花","方片","紅桃","黑桃"};
charpoint[]="JQKA";
for(i=0;i<n;++i){
if(a[i].type>=0&&a[i].type<=3){
printf("%s",type[a[i].type]);
if(a[i].point<11)printf("%d",a[i].point);
elseprintf("%c",point[a[i].point-11]);
}
else{
if(a[i].point)printf("大王");
elseprintf("小王");
}
}
printf(" ");
}

intHas(CARDa[],intn,CARDCard){
inti;
for(i=0;i<n;++i){
if(a[i].type==Card.type&&a[i].point==Card.point)
return1;
}
return0;
}

intmain(){
CARDarr[5],t;
inti,n=5,m;
srand((unsigned)time(NULL));
for(i=0;i<n;++i){
t.type=rand()%5;
if(t.type==4)t.point=rand()%2;
elset.point=rand()%13+2;
if(Has(arr,i,t))--i;
elsearr[i]=t;
}
m=n;
for(i=0;i<m;++i){//如果有大王,則排在最後
if(arr[i].type==4&&arr[i].point){
t=arr[i];
arr[i]=arr[m-1];
arr[m-1]=t;
--m;
}
}
for(i=0;i<m;++i){//如果有小王,也排在最後
if(arr[i].type==4){
t=arr[i];
arr[i]=arr[m-1];
arr[m-1]=t;
--m;
}
}
sort(arr,m);
show(arr,n);
return0;
}

㈩ c語言撲克牌

  1. 定義個字元數組,存放A-K牌面的字母 char ch[][3]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

  2. 牌的大小從A-K分別為 0-12

  3. 在輸出牌的牌面字元時,輸出ch數據中牌面值下標的字元串。如某牌數值是9,輸出時如下:

    printf("%s", ch[9]);

  4. 「%d\%c」是格式輸出字元串,表示要輸出一個整數(%d)一個字元(%c) ,後面的兩個參數分別是整數,字元,和格式化字元串相對應。是轉義符,對於要輸出特殊字元時,需要在前面加上,比如輸出時,就寫成\;再如 " ,應寫成";輸出換行寫成 ,輸出回車寫成 等。在這個題目中,和後面的%構不成特殊字元轉義,所以不輸出,刪掉它也是一樣的。