第七行的3,4,5,6代表的是ASCII码,所以会打出扑克牌上的标记
一些使用的win11的小伙伴可能会显示空格,我在下面给了解决方案
注:我用的编译器是vs2010
希望对同样遇到问题的小伙伴有一点帮助
#include<stdio.h> #include<stdlib.h> #include<time.h> //定义数组,限定长度 int card[13][4]={0}; const char kind[4]={3,4,5,6}; //字符集要用旧版的cmd显示,改法写在最后了 const char size[13]={'2','3','4','5','6','7','8','9','X','J','Q','K','A'}; //函数声明 void judge(int pnum,int sig); int main() { //定义变量 int i,j,k; int sig=1; //标记牌发给哪个玩家 int total=52; srand(time(NULL)); //发牌 while(total) //当牌发完 { j=rand()%13; k=rand()%4; if(!card[j][k]) //每张牌只能发一次 { card[j][k]=sig; //发过即给一个标记——玩家1为1,玩家2为-1 sig=-sig; total--; //轮换发牌 } } //输出玩家1的牌面 judge(1,1); printf("\n"); //输出玩家2的牌面 judge(2,-1); printf("\n"); system("pause"); return 0; } //函数定义 void judge(int pnum,int sig) { int i,j; printf("玩家%d:\n",pnum); for(i=0;i<13;i++) { printf("%c:",size[i]); for(j=0;j<4;j++) { if(card[i][j]==sig) printf("%5c",kind[j]); } printf("\n"); } } //以管理员身份打开cmd //右击左上方>>属性>>选项>>使用旧版控制台(我的是win11,所以可能会出问题) //把之前打开的关闭>>重开 //附:创建的时候如果是空项目可能看不到控制台,可以试试system函数>>输出也是没问题的