用C语言编写一个52张扑克牌随即洗牌的程序 并写上注释
发布网友
发布时间:2022-05-24 12:07
我来回答
共3个回答
热心网友
时间:2023-10-12 18:56
定义一个int p[52],里面的元素就是1~52,然后,直接 for循环i:1~52,每次随机一个数 m=rand()%52 ,swap(p[i],p[m]),就ok了
热心网友
时间:2023-10-12 18:57
/*21点游戏*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(void )
{
int a,b,c,d,s,x,t,i,n,k;
s=200,k=1000;
x=t=i=1,a=b=c=d=n=0;
srand((int)time(0));
printf(" 21点游戏
★游戏规则: \n 游戏开始后系统将随机产生1到10之间的数并累加.
1.在点数不大于21时,点数大者赢,点数相等算平局;
2.若一方点数大于21,一方点数小于21,小于21的一方赢;
3.若两方均大于21,则算平局;
4.获胜者获得相应赌注金币,金币到零则结束游戏 .\n (注:继续加点选1,不继续加点选任意非1数)\n\n##########################\n\n") ;
do {
while(x==1)
{
if(t==1)
{
c=rand()%8+3;
a=rand()%10+1;
}
if(t==2)
{
a=rand()%5+1;
c=rand()%4+1;
}
if(t==3)
{
c=rand()%3+1;
a=rand()%3+1;
}
if(t==4)
{
a=rand()%2+1;
c=rand()%3+1;
}
if(t==5)
a=rand()%8+1;
if(t==6)
a=rand()%3+1;
b+=a,d+=c;
if(d>16)
t=2;
if(d==19&&b==19)
t=3;
if(d==20&&b==20)
t=3;
if(b==20&&d==19)
t=4;
if(d==19&&(d-b)>3)
t=5;
if(d==20&&d>b)
t=6;
if(d==21)
t=6;
if(i==1)
{
do
{
printf(" 您现在还有%d个金币,系统有%d个,请输入赌注: ",s,k);
scanf("%d",&n);
}
while(s<n);
i++;
}
if(b>21&&d<22)
{
printf(" 你%d点,系统%d点,你输了!\n\n\n\n",b,d);
s-=n;
k+=n;
t=i=1,b=d=0;
break;
}
if(d>21&&b<22)
{
printf(" 你%d点,系统%d点,你赢了!\n\n\n\n",b,d);
s+=n;
k-=n;
t=i=1,b=d=0;
break;
}
if(d>21&&b>21)
{
printf(" 你%d点,系统%d点,平局!
\n\n\n",b,d);
t=i=1,b=d=0;
break;
}
printf(" 您加%d点,系统加%d点!\n 您现在共 %d点,系统现在共 %d点!\n 是否继续加点 ",a,c,b,d);
scanf(" %d",&x);
a=c=0;
if(x!=1)
{
if(d<b&&d<18)
{
c=rand()%4+2;
d=d+c;
printf("您不加点,系统加%d点",c);
}
if(d<b&&d==20)
{
c=rand()%2+1;
d=d+c;
printf("您不加点,系统加%d点",c);
}
if(d<b&&d==19)
{
c=rand()%4+1;
d=d+c;
printf("您不加点,系统加%d点",c);
}
if(d<b&&d==18)
{
c=rand()%5+1;
d=d+c;
printf("您不加点,系统加%d点",c);
}
if(d>b)
printf("您不加点,系统不加点");
if(d<22&&d>b)
{
printf(" 你%d点,系统%d点,你输了!\n\n\n\n",b,d);
s-=n;
k+=n;
t=x=i=1,b=d=0;
break;
}
if(b>d&&b<22||b<22&&d>21)
{
printf(" 你%d点,系统%d点,你赢了!\n\n\n\n",b,d);
s+=n;
k-=n;
t=x=i=1,b=d=0;
break;
}
if(b==d)
{
printf(" 你%d点,系统%d点,平局!
\n\n\n\n",b,d);
t=x=i=1,b=d=0;
break;
}
}
}
}
while(s>0&&k>0);
printf("您有%d个金币,系统有%d个金币!\n\n" ,s,k);
if(s>k)
printf("太棒了,你把系统打败了!!!\n");else if(k>s)
printf(" 您的金币不足,挑战系统失败!\n");
return 0;
}
我只有这个程序,你借鉴一下!
热心网友
时间:2023-10-12 18:57
没有其他的要求了吗?
这样说的有点模糊 怕做出来不满足你的要求