C语言实现随机发纸牌

为避免重复发牌,设二维数组sign[4][13]记载是否发过纸牌,其中行下表表示花色,列下标表示点数。设字符串指针数组card[n]存储随机发的n张纸牌,例如card[0] = “梅花2”, 按照以下方法以此发出每一张牌:首先产生一个0~3的随机数i表示花色, 然后在产生一个0~12的随机数j表示点数,如果这张牌尚未发出,则将sign[i][j]置1,并将这张牌存储到card[n]中。C语言代码描述为:

//发纸牌
#include<iostream>
#include<string.h>
#include<time.h>
using namespace std;
char *str1[4] = {"梅花", "黑桃", "红桃", "方块"};   //全局变量存储花色和点数
char *str2[13] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
char *card[13];             //全局变量存储随机产生的纸牌,假设最多发13张纸牌
//发牌函数
void SendCards(int n) {int i, j, k, sign[4][13] = {0};     //初始化数组标志,所有牌均未发出srand(time(NULL));for(int k = 0; k < n;) {i = rand() % 4;         //随机产生花色,一共有4种j = rand() % 13;        //随机产生点数,一共有13种if(sign[i][j] == 1) {   //表示该牌已经发出continue;} else {card[k] = (char *) malloc(6);strcpy(card[k], str1[i]);   //字符串复制函数strcat(card[k], str2[j]);   //字符串连接函数sign[i][j] = 1;             //标记已经发出该牌k++;}}
}
//打印当前牌面
void PrintCards(int n) {for(int k = 0; k < n; k++) {printf("%-10s", card[k]);   //字符串控制符}printf("\n");
}
//主函数
int main() {int n;printf("Please Input the Number of Your Cards: ");scanf("%d", &n);SendCards(n);PrintCards(n);system("pause");return 0;
}

C语言实现随机发纸牌相关推荐

  1. C语言实现随机抽取纸牌

    程序设计要求 本程序负责发一副标准纸牌,每张标准纸牌都有一种花色(梅花.方块.黑桃.红桃)和一个等级(2,3,4,5,6-K,A).程序需要用户指明手机有几张牌. 程序设计流程 1 . 使用库函数和时 ...

  2. c语言扑克牌随机发三张牌,扑克牌发三张概率组合一副扑克牌52张(不含大、小王),发三张牌,一共多少种组合.另外:1)三张中含一对的组合有多少张?(...

    共回答了20个问题采纳率:95% 这个题目我喜欢 所有组合为:C(52,5) 1.A组为三张不关联明牌,组合:52*48*44,与B组二张暗牌组成一个对子.B的组合为:(12-3)*(52-12).概 ...

  3. R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray、F1、偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)

    R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray.F1.偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机) ...

  4. R语言构建随机森林模型错误解决:Error in y - ymean : non-numeric argument to binary operator

    R语言构建随机森林模型错误解决:Error in y - ymean : non-numeric argument to binary operator 目录 R语言构建随机森林模型错误解决:Erro ...

  5. R语言基于随机森林进行特征选择(feature selection)

    R语言基于随机森林进行特征选择(feature selection) 目录 R语言基于随机森林进行特征选择(feature selection)

  6. ML之RF:利用Js语言设计随机森林算法【DT之CART算法(gain index)】并应用随机森林算法

    ML之RF:利用Js语言设计随机森林算法[DT之CART算法(gain index)]&并应用随机森林算法 目录 输出结果 设计思路 代码实现(部分代码) 输出结果 设计思路 代码实现(部分代 ...

  7. 答题小程序 服务器,答题小程序如何实现随机发题目

    答题小程序如何实现随机发题目 发布时间:2020-12-11 11:53:36 来源:亿速云 阅读:123 作者:小新 这篇文章主要介绍了答题小程序如何实现随机发题目,具有一定借鉴价值,需要的朋友可以 ...

  8. 【基于C语言的随机点名器】

    基于C语言的随机点名器 [1]C语言->控制台颜色绚丽多彩 [2]C语言-> printf 输出颜色花样百出 [3]C语言-> 随机点名试炼中 [4]C语言-> 随机点名项目实 ...

  9. SIM71004G模块使用Linux C语言实现打电话发短信

    为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 一.实验目的: SIM71004G模块使用Linux C语言实现打电话发短信. 二 ...

最新文章

  1. arduino 大气气压模块 BOSCH BMP085
  2. axis2 java客户端内存溢出怎么办_java - Axis2-总是出现404错误 - 堆栈内存溢出
  3. DAO层使用泛型的两种方式
  4. jQuery判断checkbox是否选中的3种方法
  5. Premiere Pro CC2017教程(三)
  6. 每天一道LeetCode-----给定字符串s和字符数组words,在s中找到words出现的位置,words内部字符串顺序无要求
  7. postman生成python代码_python代码直接生成可执行exe文件
  8. 【报告分享】2020年中国快消品行业KOL内容营销报告.pdf(附下载链接)
  9. 微信小游戏flappy bird填坑
  10. WebService /php soap 相关调用 收藏
  11. 如何:从代码创建 UML 类图(ZZ)
  12. [轉]快速理解VirtualBox的四种网络连接方式
  13. 用 ASTERISK 搭建自己的免费 VOIP 服务器
  14. 物联网学习之路——物联网通信技术简介
  15. MySQL执行多表联查时,报错ln aggregated query without GROUP BY
  16. qtabwidget设置表头_QTableWidget添加表头菜单 并 可以通过表头菜单隐藏选中列
  17. 大白菜u盘装系统教程linux,大白菜5.1版 快速U盘装系统综合教程
  18. PyTorch 深度学习:60分钟快速入门
  19. 解决HC05蓝牙模块主从配对失败及AT模式设置方案
  20. 中国神童13岁免试上大学,极端荣耀后却选择出家为僧!

热门文章

  1. Perl: print @globbing.\n; 和 print @globbing; 不一样,一个已经转换为数组元素个数了...
  2. xcodebuild构建时报错unknown error -1=ffffffffffffffff Command /bin/sh failed with exit code 1
  3. tcp/ip,http,socket mysql底层技术原理
  4. LintCode初级题——fizz buzz
  5. Windows环境下多线程编程原理与应用读书笔记(8)————信号量及其应用
  6. ILP32和LP64数据模型
  7. 路径分析开源工程OpenTripPlaner 概述
  8. 未与信任 SQL Server 连接相关联
  9. 要做互联星空的SP接口,一点头绪都没有
  10. python选择排序 时间复杂度