| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1218 人关注过本帖
标题:求路过的大佬解决 发牌问题
只看楼主 加入收藏
Lukyo
Rank: 1
等 级:新手上路
帖 子:33
专家分:6
注 册:2016-9-18
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:3 
求路过的大佬解决 发牌问题
题目
编制一个模拟发牌的程序。有编号为1,2,3,4四个人,将一付去掉大小怪的扑克按照如下顺序排列梅花c0-c12,方块d0-d12,红桃h0--h12,黑桃s0-s12,然后按照1,2,3,4四个人的顺序发牌,问最后每个人手上的牌有哪些。

程序代码:
#include<stdio.h>
int main()
{

   char type[5] = {'c','d','h','s','\0'};
   int card[13] = {0,1,2,3,4,5,6,7,8,9,10,11,12};
   char people[4][26];
   int n, i, j, p, q;

   for(i = 0; i < 4; i++)
   {
       for(j = 0; j < 13; j++)
       {
           people[p][q++] = type[i];
           people[p][q++] = card[j];
           p++;
           if(p == 4)
            p = 0;
       }
   }
   while(scanf("%d",&n) == 1)
       {
           for(i = 0; i < 26; i++)
           {
               while(i != 0)
                printf(" ");
               printf("%c",people[n][i]);
           }
           printf("\n");
       }

    return 0;
}


最终不行  求大佬解决
2016-12-28 15:24
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:4 
错误太多

程序代码:
#include <stdio.h>

int main( void )
{
    for( unsigned id=0; id!=4; ++id )
    {
        printf( "%u:", id+1 );

        for( unsigned j=0; j!=13; ++j )
            printf( " %c%u", "cdhs"[(id+j*4)/13], (id+j*4)%13 );

        putchar( '\n' );
    }

    return 0;
}

2016-12-28 15:43
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:4 
上面代码应该是赋初值问题,还有输入输出数据类型要注意一下~p=0;q=0;初始化啊~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-28 15:46
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:4 
#include<stdio.h>
main()
{
    char a[]="c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10c11c12d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10d11d12h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10h11h12s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10s11s12";
    int i, j, n=sizeof(a)/sizeof(char)/3;
    for (i=0; i<4; i++)
    {
        printf("\n%d# ", i+1);
        for (j=i; j<n; j+=4)
            printf("%.*s ", 3, a+j*3);
    }
}
2016-12-28 15:58
快速回复:求路过的大佬解决 发牌问题
数据加载中...
 
   



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

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