定义4个长度为13的一裝数组,设计电脑发牌程序,发出52张牌,输出发牌果。大于10的牌为J,Q,K,1为‘A’,每次运行发牌结果不能相同。
1条回答 默认 最新
a5156520 2022-05-04 10:33关注一个实现,供参考:
#include <stdio.h> #include <stdlib.h> //提供rand()函数原型 #include <time.h> //提供time()函数原型 //给每个玩家发牌 void licensing(int * play){ int i,j; srand(time(0)+rand()); //用当前时间再加随机数做随机数种子,以便让每一次随机不一样 //给玩家发牌 for(i=0;i<13;i++){ int num = rand()%13+1; //rand()%13产生0~12的随机数, rand()%13+1产生1到13的随机数 //当产生的随机数 if(num==11){ play[i]='J'; }else if(num==12){ play[i]='Q'; }else if(num==13){ play[i]='K'; }else if(num==1){ play[i]='A'; }else if(num==10){ play[i]=10; }else { play[i]=num+'0'; } // printf("num=%d,play[%d]=%c\n",num,i,play[i]); } } //看牌 void watchCards(int * play){ int i; for(i=0;i<13;i++){ if(play[i]==10){ printf("%2d ",play[i]); }else{ printf("%2c ",play[i]); } } printf("\n"); } int main(void){ int playA[13]; int playB[13]; int playC[13]; int playD[13]; //给四个玩家发牌 licensing(playA); licensing(playB); licensing(playC); licensing(playD); printf("四个玩家的牌如下:\n"); //看牌 watchCards(playA); watchCards(playB); watchCards(playC); watchCards(playD); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录