| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4519 人关注过本帖
标题:52张扑克牌打乱顺序,求大神帮助
取消只看楼主 加入收藏
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
结帖率:80%
收藏
 问题点数:0 回复次数:7 
52张扑克牌打乱顺序,求大神帮助
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
int main()
{
    char c[4];
    int num[13]={0};
    int i,j;
    srand((unsigned)time(NULL));

    for(i=0;i<13;i++)                        //输出不同的十三个数,1到13
    {
        num[i]=rand()%13+1;
        for(j=0;j<i;j++)
        {
            if(num[i]=num[j])
                num[i]=rand()%13+1;   
        }
    }
    for(i=0;i<4;i++)                           //十三张牌每张赋不同花色,并输出
    {
        c[i]=rand()%3+4;
        for(j=0;j<13;j++)
            printf("%c %d\t",c[i],num[j]);
    }
    return 0;
}

总是有相同的牌。感觉就是输出不同的随机数有问题,扑克牌花色差一种,求大神支招,谢谢

[ 本帖最后由 ·charles 于 2015-4-26 23:27 编辑 ]
搜索更多相关主题的帖子: 扑克牌 include 
2015-04-26 23:25
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
收藏
得分:0 
回复 2楼 wmf2014
嗯嗯。谢谢。想这种不同随机数的算法想了好久,膜拜大神!!
弱弱地问一句,就这道题,有没有更有效的算法,只求思路,不求代码。

编程!编程!!编程!!!
重要的事情说三遍!!!!
2015-04-27 00:26
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
收藏
得分:0 
不好意思,学c语言不久,不是很熟练,刚刚做完。谢谢您,真心佩服!!
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
int main()
{
    int a[52],i,j;
    srand((unsigned)time(NULL));
    for(i=0;i<52;i++)
    {
        a[i]=rand()%52+1;
   
        for(j=0;j<i;j++)
        {
            if(a[i]==a[j])
                i--;
        }
    }
    for(i=0;i<52;i++)
        printf("%c%d\t",a[i]/13+3,a[i]%13+1);
    return 0;
}

编程!编程!!编程!!!
重要的事情说三遍!!!!
2015-04-27 01:06
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
收藏
得分:0 
回复 5楼 ·charles
谢谢您,麻烦帮我看看还可以修改什么吗

编程!编程!!编程!!!
重要的事情说三遍!!!!
2015-04-27 01:12
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
收藏
得分:0 
回复 7楼 wmf2014
  s=i+rand()%(52-i);//这是效率最高的免重复算法,永远不会产生相等的随机值


菜鸟表示看不懂,大神详解o(╯□╰)o

编程!编程!!编程!!!
重要的事情说三遍!!!!
2015-04-27 01:21
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
收藏
得分:0 
回复 8楼 wmf2014
嗯嗯,您讲得好详细,真心谢谢。
这个我看懂了,不过您的代码里面求随机数那一步是怎么回事?怎么感觉会重复的样子,,,虽然我运行了代码,的确不重复

编程!编程!!编程!!!
重要的事情说三遍!!!!
2015-04-27 01:24
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
收藏
得分:0 
回复 11楼 wmf2014
我的那个想法是有不靠谱额。。。后面您提出的那个修改方法我懂了,我想问问,就是要求不重复的随机数,最有效率的算法是怎么做?

编程!编程!!编程!!!
重要的事情说三遍!!!!
2015-04-27 23:34
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
收藏
得分:0 
回复 13楼 wmf2014
不好意思,白天课程很紧张,所以才回复。
好的,谢谢,我再好好想想

编程!编程!!编程!!!
重要的事情说三遍!!!!
2015-04-29 23:12
快速回复:52张扑克牌打乱顺序,求大神帮助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022598 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved