哪里有c语言教程,哪里有C语言的教程及实例

fa0b36a856ae8af3cc19bfa8ffa8d10f.png

这个游戏没有玩过,程序运行后的救过是有牛的种数为1726832,牛0到牛9分别为:191808,171304,

168096,171304,168096,177424,168096,171304,168096,171304.

程序代码如下:(注:调试环境是VC++6.0,game函数中被注释的代码段是用来具体打印牛X的组合,打印

的时间非常漫长~~~,我打印到了200000种看第一个还是黑桃A就关掉了~~~总共有1726832行,要是楼

主的机器比较好,有耐心的话,可以把注释符去掉,慢慢观察。。。)

#include "stdio.h"

//黑桃\006 梅花 \005 红桃 \003 方块 \004

static int count=0;//记录有牛的总个数

static int f[10];//分别记录从牛0到牛9的个数

static int q=0;//打印编号

void game(int s[]){

int x[5],i,j,k,y=0,sum=0;

for(i=0;i<5;i++){

//将数组进行处理,J,Q,K记为10点

x[i]=s[i]%100;//消去百位的花色标志

if(x[i]>=10&&x[i]<=13)

x[i]=10;

sum+=x[i];//记录总点数

}

for(i=0;i<3;i++){

for(j=i+1;j<4;j++){

for(k=j+1;k<5;k++){

y=x[i]+x[j];

y+=x[k];//选任意3张牌记录点数和

if(y%10==0){//若是牛(即是10的倍数)

count++;//总个数加1

f[(sum-y)%10]++;//牛几 加1

///*被注释的代码段

printf("%d.牛%d:",++q,(sum-y)%10);

for(int p=0;p<5;p++){

if(s[p]/100==0)

printf("\006");

else if(s[p]/100==1)

printf("\003");

else if(s[p]/100==1)

printf("\005");

else

printf("\004");

if(s[p]%100==1)

printf("A,");

else if(s[p]%100==11)

printf("J,");

else if(s[p]%100==12)

printf("Q,");

else if(s[p]%100==13)

printf("K,");

else

printf("%d,",s[p]%100);

}

printf("\n");

//*/

return;//返回主函数,重选5张牌

}

}

}

}

}

void main(){

int i,j,k,p,q;

int a[5];

int b[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};

int z[52];

for(i=0;i<13;i++){

//将整副牌存入数组z中,百位为0表示黑桃,百位1表示红桃,2表示梅花,3表示方块

z[i]=b[i];

z[i+13]=b[i]+100;

z[i+26]=b[i]+200;

z[i+39]=b[i]+300;

}

for(i=0;i<=47;i++){

//从整副牌中选取5张,存入数组a中

a[0]=z[i];

for(j=i+1;j<=48;j++){

a[1]=z[j];

for(k=j+1;k<=49;k++){

a[2]=z[k];

for(p=k+1;p<=50;p++){

a[3]=z[p];

for(q=p+1;q<=51;q++){

a[4]=z[q];

game(a);//调用程序

}

}

}

}

}

printf("有牛种数:%d种\n",count);

for(i=0;i<10;i++)

printf("牛%d:%d种\n",i,f[i]);

} #include

main()

{

int i1,i2,i3,i4,i5,a[13][13],sum=0,j;

for(i1=1;i1<=13;i1++)

{

for(i2=i1;;i2<=13;i2++)

{

for(i3=i2;i3<=13;i3+=)

if((i1+i2+i3)%10==0&&i1!=i2&&i1!=i3&&i2!=i3)

a[0][0]=i1,a[0][1]=i2,a[0][2]=i3,sum++;

}

}

printf("有%d种牛\n",sum);

for(i=0;i

{

for(j=0;j<3;j++)

{

if(a[i][j]==1)

printf("A ");

else

if(a[i][j]==11)

printf("J ");

else

if(a[i][j]==12)

printf("Q ");

else

if(a[i][j]==13)

printf("K ");

else

printf("%d ",a[i][j]);

}

printf("\n");

}

}

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值