永发信息网

c语言编程,52张牌随机发给2人3张,比大小。

答案:2  悬赏:20  手机版
解决时间 2021-03-22 00:27
  • 提问者网友:人傍凄凉立暮秋
  • 2021-03-21 11:50
c语言编程,52张牌随机发给2人3张,比大小。
最佳答案
  • 五星知识达人网友:人间朝暮
  • 2021-03-21 12:26
//C++的:
#include
#include
#include
#define PERSON_NUM 2//玩家人数
using namespace std;

void huase_pai(int *huase, int *pai)
{
srand(time(NULL));
*huase=rand()%4;
*pai=rand()%13;
}

void main()
{
int a[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};//4个数组代表四色牌
int b[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int c[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int d[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};

int huase,pai;//花色、牌
int i,j;
int person_sum[PERSON_NUM]={0};

for(i=0;i {
for(j=0;j<3;j++)
{
huase_pai(&huase, &pai);

switch(huase)
{
case 0: person_sum[i]+=a[pai];
break;
case 1: person_sum[i]+=b[pai];
break;
case 2: person_sum[i]+=b[pai];
break;
case 3: person_sum[i]+=b[pai];
break;
}

}

_sleep(5*1000);
}

if(person_sum[0]>person_sum[1])
cout<<"第一个人的点数大!"< else if(person_sum[0] cout<<"第二个人的点数大!"< else
cout<<"两人点数一样大!"< }
全部回答
  • 1楼网友:撞了怀
  • 2021-03-21 13:05
1、c语言提供了一些库函数来实现随机数的产生。c语言中有三个通用的随机数发生器,分别为 rand函数, random函数, randomize 函数       但是rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非破坏了系统,为了改变这个种子的值,c提供了srand()函数,它的原形是void srand( int a)。     在调用rand函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。 2、例程: #include "stdio.h" #include #include int main() {   char str[13][5]={{"a"},{"2"},{"3"},{"4"},{"5"},{"6"},{"7"},{"8"},{"9"},{"10"},{"j"},{"q"},{"k"}};   int b[]={1,2,3,4};//1红桃 2黑桃  3放片  4梅花   char str1[5][10]={{"红桃"},{"黑桃"},{"方块"},{"梅花"},{}};   srand(null);   int a,c,i;   int arr[17][2]={0};//记录17个数字a[i][0] 表示数字 a[i][1] 表示颜色   一共54张牌,4张 a--k  1大王 1小王  1-4=>a  5-8=>2  53 =>小王 54 大王,产生不重复的17个数字   int k=0;   while(k<17)     {       a=rand()%54+1;//        a<53   时候 a=(a-1)/4;//1-4  =>0   5-8 ==>1         //      printf("%3d",a);       if(a<53)     {       a=(a-1)/4;       c=rand()%4;       for(i=0;i<17;i++)         {           if(a==arr[i][0]&&c==arr[i][1])         break;         }       if(i<17)         {           arr[k][0]=a;           arr[k][1]=c;           k++;         }     }       if(a==53||a==54)     {       for(i=0;i<17;i++)         {           if(a==arr[i][0])         break;         }             if(i<17)         {           arr[k][0]=a;           arr[k][1]=4;           k++;         }     }     }   for(i=0;i<17;i++)     {       //     printf("%s%s\n",str1[arr[i][1]],str[arr[i][0]]);       printf("%d ",arr[i][0]);     } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯