#include<stdio.h>#include<math.h>#include<time.h>/*定义输出与数组下标不一致的排符*/voidprint(intt){inta=t%13;switch(a){case1:printf("2");break;case2:printf("A");break;case3:printf("K");break;case4:printf("Q");break;case5:printf("J");break;case6:printf("10");break;case0:printf("3");break;default:printf("%d",16-a);}}voidmain(){/*定义存储每张牌的点数和花色*/structzhangxiao{intp;intr;intflag;}pai[52],num;inti,j,k;chara[4]={'\005','\004','\006','\003'};srand((unsigned)time(NULL));for(i=0;i<=51;i++){pai[i].p=i+1;pai[i].r=rand();pai[i].flag=0;}/*根据点数排序*/for(i=0;i<=51;i++)for(j=i+1;j<=51;j++)if(pai[i].r>pai[j].r){num=pai[i];pai[i]=pai[j];pai[j]=num;}/*根据花色排序*/for(i=0;i<=3;i++)for(j=i*13;j<=i*13+12;j++)for(k=j+1;k<=i*13+12;k++)if(pai[j].p>pai[k].p){num=pai[k];pai[k]=pai[j];pai[j]=num;}/*控制输出对齐*/printf("\n");printf("");for(i=0;i<=3;i++){for(k=1;k<=4;k++){printf("%c",a[k-1]);for(j=i*13;j<=i*13+12;j++)if(pai[j].p>=(k-1)*13+1&&pai[j].p<=(k-1)*13+12+1&&pai[j].flag==0){print(pai[j].p);pai[j].flag=1;}}if(i==0)printf("\n\n\n");if(i==1)printf("");if(i==2){printf("\n\n\n");printf("");}if(i==3)printf("\n");}}
阅读全文 >