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<<"两人点数一样大!"<
}
#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<<"第一个人的点数大!"<
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]);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯