标题:用结构体编的模拟发扑克牌的过程
只看楼主
赤壁男儿
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2009-12-26
结帖率:66.67%
 问题点数:0 回复次数:2 
用结构体编的模拟发扑克牌的过程
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
struct  card
{
    char huase[10];
    char daxiao[10];
};
main()
{
    time_t ti;
    char *huase[]={{"heitao"},{"hontao"},{"fangkuai"},{"mianhua"}};
    char daxiao[]={'A','2','3','4','5','6','7','8','10','J','Q','K'};
    int i,j;
    int result[52]={0};
    struct card Card[52];
    for(i=0;i<52;i++)
        result[i]=70;
    for(i=0;i<52;i++)
    {
        strcpy(Card[i].huase,huase[i\13]);
        strcpy(Card[i].daxiao,daxiao[i%13]);
    }
    srand(time(NULL));
    i=0;
    while(1)
    {
        result[i]=rand()%52;
        for(j=0;j<i;j++)
        {
            if(result[j]==result[i])
                break;
        }
        if(j<i)
            continue;
        i++;
        if(i>=52)
            break;
    }
    for(i=0;i<52;i++)
    {
        printf("%10s %5s\n",Card[result[i]].huase,Card[result[i]].daxiao);
    }
}

不知道这个程序那里有问题?帮忙指点一下!谢了!
搜索更多相关主题的帖子: 模拟 结构体 扑克牌 
2010-04-29 12:32
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
得分:0 
问题在哪懒得看了
不过洗牌的算法太差
你可以从第一张牌起用rand函数随机和其他牌进行交换
遍历一遍以后也就相当于完成了洗牌过程。。。

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2010-04-29 13:42
aufish
Rank: 2
等 级:论坛游民
威 望:1
帖 子:59
专家分:94
注 册:2010-4-22
得分:0 
char daxiao[]={'A','2','3','4','5','6','7','8','10','J','Q','K'};
改为:
char daxiao[]={'A','2','3','4','5','6','7','8','10','J','Q','K','\0'};
除号用错了!
但还是错误百出

[ 本帖最后由 aufish 于 2010-4-29 18:43 编辑 ]
2010-04-29 18:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-304835-1-1.html




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

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