| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 390 人关注过本帖
标题:[求助]扑克排序问题
收藏  订阅  推荐  打印 
yz1987cn
Rank: 1
等级:新手上路
帖子:38
积分:480
注册:2006-3-5
[求助]扑克排序问题

13张同花色扑克(A~K),按一定顺序排好。将最上面一张翻开是A;再从余下的牌开始数,第一放到这叠牌的底部,第二张翻开是2;再从余下的牌开始数,第一放到底部,第二放到底部,翻开第三张是3;如此反复,直到最后翻开的牌顺序是A,2,3~J,Q,K,问开始的牌顺序是什么~~说清楚了吧,不知道怎么做
搜索更多相关主题的帖子: 扑克  
2006-3-28 23:07
仁者无敌
Rank: 3Rank: 3
等级:中级会员
帖子:199
积分:2090
注册:2006-3-5

没看懂啊

I am a programmer !
2006-3-29 10:41
ggmm
Rank: 1
等级:新手上路
帖子:16
积分:260
注册:2006-3-23

说详细点吧

2006-3-29 13:38
yz1987cn
Rank: 1
等级:新手上路
帖子:38
积分:480
注册:2006-3-5

不好意思没说清楚.再说一次:手里有一叠牌A到K。从上往下开始,把第一张翻开到桌面上是A;接着开始数1,2,把1牌放到这叠牌的底部,数到2时翻开到桌面,点数时2;接着开始数1,2,3,1,2顺次方到底部,第3张翻开到桌面是3... ...如此到最后桌面上摆的牌按顺序是A,2,3,4,5,6,7,8,9,10,J,Q,K。求开始时候派在受理的顺序


潘安退避三舍,宋玉甘拜下风
2006-3-29 22:22
feng1256
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:14
帖子:2891
积分:29010
注册:2005-11-24

这应该是你想要的

[CODE]

#include "stdio.h"
#include "conio.h"
void Mov(int);
int a[13]={0};
void main()
{
int i;

a[12]=13;
a[11]=12;
for(i=1;i<=11;i++)
Mov(11-i); /*传递的是下标*/
for(i=0;i<13;i++)
printf("%5d",a[i]);
getch();
}

void Mov(int m)
{
int n,i;
int b[13]={0};

n=(m+1)%(12-m); /*m+1为上翻次数,12-m为当前牌数量*/
for(i=12;i>=m+1;i--) /*相当于把原来的几张牌向后移n位*/
if(i+n>12)
b[i+n-13]=a[i]; /*移出的保存在别的数组*/
else
a[i+n]=a[i]; /*做n位移动*/
for(i=0;b[i]!=0;i++)
a[m+1+i]=b[i]; /*把移出的放回*/
a[m]=m+1;
}

[/CODE]

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-3-30 00:29
仁者无敌
Rank: 3Rank: 3
等级:中级会员
帖子:199
积分:2090
注册:2006-3-5

我试了一下,版主是对的


I am a programmer !
2006-3-30 06:25
yz1987cn
Rank: 1
等级:新手上路
帖子:38
积分:480
注册:2006-3-5

wo 也试了,对的,现在去看能理解不。。。

潘安退避三舍,宋玉甘拜下风
2006-3-30 15:40
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.082637 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved