注册 登录
编程论坛 C++教室

【求助】随机发牌问题

积木10086 发布于 2013-11-22 19:19, 948 次点击
随机发牌问题(不带大小王)
随机选一个花色
随机选一个牌
发牌张数由客户输入
发牌是,需要过滤重复牌

9 回复
#2
积木100862013-11-22 19:20
这是老师布置的作业,实在是不会啊,求助各位了
#3
积木100862013-11-22 20:13
老师要求是要用数组的
#4
peach54602013-11-23 07:42
无脑求代码,没人会喜欢的...
#5
积木100862013-11-23 13:57
没有思路,,只想让大家提供一路
#6
积木100862013-11-23 13:58
回复 4楼 peach5460
没有思路,,只想让大家提供一下思路
#7
左手拉一只猫2013-11-23 16:50
用内置的随机函数rand()生成随机数,用之前记得用srand()设置一下,不然每次生成的随机数都会一样了。。。思路和正常的思路一样没什么技巧性的东西。。。
#8
积木100862013-11-23 18:04
回复 7楼 左手拉一只猫
好的,就是这点不会,现在明白了,谢谢啊
#9
peach54602013-11-23 18:33
以下是引用左手拉一只猫在2013-11-23 16:50:50的发言:

用内置的随机函数rand()生成随机数,用之前记得用srand()设置一下,不然每次生成的随机数都会一样了。。。思路和正常的思路一样没什么技巧性的东西。。。

嗯,,我差不多也是这个想法...
#10
积木100862013-11-24 15:51
  1 #include <stdio.h>
  2 #include <time.h>
  3
  4 int main()
  5 {
  6     int i,j,k,l;
  7     char a[13]={'A','2','3','4','5','6','7','8','9','S','J','Q','K'};
  8     char b[4]={'b','r','m','f'};
  9     int c[4][13]={0};
 10     printf("请输入发牌张数:\n");
 11     scanf("%d",&k);
 12     while(k<1 || k>52)
 13     {
 14         printf("输入错误,请重新输入:\n");
 15         scanf("%d",&k);
 16     }
 17     srand(time(0));
 18     printf("发牌为:\n");
 19     for(i=0;i<k;i++)
 20     {
 21         int temp = rand();
 22         j = temp % 13;
 23         l = temp % 4;
 24         if(c[l][j]==0)
 25         {
 26             printf("%c%c ",a[j],b[l]);
 27             c[l][j]=1;
 28         }
 29         else
 30         {
 31             i--;//相当于循环次数+1
 32         }
 33     }
 34     printf("\n");
 35     return 0;
 36 }

1