C语言实现随机抽取纸牌

程序设计要求

本程序负责发一副标准纸牌,每张标准纸牌都有一种花色(梅花、方块、黑桃、红桃)和一个等级(2,3,4,5,6…K,A)。程序需要用户指明手机有几张牌。

程序设计流程

1 . 使用库函数和时间函数,用time函数返回当前时间,用一个数表示,srand函数初始化C语言的随机数生成器。通过把time函数返回值传递给srand可以避免程序每次运行发同样的牌。rand函数产生随机数,通过%缩放。

2 . 使用二位数组来进行数据记录。4行表示每种花色,13列表示每种等级。

3 . 程序开始时,数组元素都为false,每随机抽取一张纸牌时,检查in_hand对应元素真假,如果为真,则抽取其他纸牌,如果为假,记录到数组元素当中,提醒我们这张牌已经记录过了。

效果展示
在这里插入图片描述
完整代码

#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
#include <time.h>
#include <stdlib.h># define num_rates ((int) (sizeof(value)/sizeof(value[0])))
# define initial_balance 100.00#define num_suits 4
#define num_ranks 13int main(){bool in_hand[num_suits][num_ranks] = {false};
int num_cards,rank,suit;const char rank_code[] = { '2','3','4','5','6','7','8','9','t','j','q','k','a'};
const char suit_code[] = { 'c','d','h','s'};
printf("enter number\n");
scanf("%d",&num_cards);printf("your hands\n");
while(num_cards>0){suit = rand()%num_suits;rank = rand()%num_ranks;if(!in_hand[suit][rank]){in_hand[suit][rank] = true;num_cards--;printf(" %c%c",rank_code[rank],suit_code[suit]);}
}
printf("\n");
return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言基础入门(8)之日期时间

目录 1.日期和日期时间类型 2.从字符串生成日期数据 3.日期显示格式 4.访问日期时间的组成值 5.日期舍入计算 6.日期计算 6.1 时间长度 6.2 时间周期 6.3 时间区间 7.基本 R 软件的日期功能 7.1 生成日期和日期时间型数据 7.2 取出日期时间的组成值 7.3 日期计算 练…

C语言点名器

设计流程 1 . 使用求模符号“%”求模数控制随机数产生范围。 2 . 使用rand&#xff08;&#xff09;计算出一个随机数。 3 . 使用函数time()来获取时间。 4 . 用二维字符数组储存名字&#xff0c;产生范围类的随机数在用下标调用数组里面的名字。 效果展示 完整代码 #inclu…

R语言基础入门(9)之因子类型

目录 1.因子 2.table() 函数 3.tapply() 函数 4.forcats 包的因子函数 练习 1.因子 R 中用因子代表数据中分类变量, 如性别、省份、职业。有序因子代表有序量度&#xff0c;如打分结果&#xff0c;疾病严重程度等。用 factor() 函数把字符型向量转换成因子&#xff0c;如x…

2万字带你攻略掉Selenium

目录 1. 准备工作 1.1 安装selenium库 1.2 安装浏览器驱动 2. 基本用法 2.1 初始化浏览器对象 2.2 访问页面 2.3 设置浏览器大小 2.4 刷新页面 2.5 前进后退 3. 获取页面基础属性 4. 定位页面元素 4.1 id定位 4.2 name定位 4.3 class定位 4.4 tag定位 4.5 lin…

IDEA里的web.xml页面的Servlet名称报错下方出现红色下划线

错误显示 对于上述错误是因为只有新建的Servlet名称但是并没为为这个Servlet指定访问地址的路径和映射&#xff0c;我们只需要添加访问地址的路径和映射就可以解决这个问题了。 修改之后的代码 <?xml version"1.0" encoding"UTF-8"?> <web-ap…

Python之Hello World

python实现Hello World项目 在项目上点击右键New–>File,然后输入文件名Hello World 一个Hello World文件创建完成 编写相应的代码 在空白的地方右击选择Run"Hello World" 程序运行成功&#xff0c;输出Hello World

knn(k近邻算法)——python

目录 1. 基本定义 2. 算法原理 2.1 算法优缺点 2.2 算法参数 2.3 变种 3.算法中的距离公式 4.案例实现 4.1 导入相关库 4.2 读取数据 4.3 读取变量名 4.4 定义X,Y数据 4.5 分离训练集和测试集 4.6 计算欧式距离 4.7 可视化距离矩阵 4.8 预测样本 4.9 查看正确…

C语言中的文件是什么?

我们对文件的概念已经非常熟悉了&#xff0c;比如常见的 Word 文档、txt 文件、源文件等。文件是数据源的一种&#xff0c;最主要的作用是保存数据。 在操作系统中&#xff0c;为了统一对各种硬件的操作&#xff0c;简化接口&#xff0c;不同的硬件设备也都被看成一个文件。对…

knn(k近邻算法)——matlab

目录 1. 基本定义 2. 算法原理 2.1 算法优缺点 2.2 算法参数 2.3 变种 3.算法中的距离公式 4.案例实现 4.1 读取数据 4.2 分离训练集和测试集 4.3 归一化处理 4.4 计算欧氏距离 4.5 排序和输出测试结果 4.6 计算准确率 总代码 1. 基本定义 k最近邻(k-Nearest N…

C语言打开文件详解

C语言中操作文件之前必须先打开文件&#xff1b;所谓“打开文件”&#xff0c;就是让程序和文件建立连接的过程。 打开文件之后&#xff0c;程序可以得到文件的相关信息&#xff0c;例如大小、类型、权限、创建者、更新时间等。在后续读写文件的过程中&#xff0c;程序还可以记…

python turtle虎年来拜年了

1.画个虎 # codingutf-8 from turtle import * import timeCOLOR #B2814Ddef set_start(x, y, w, cCOLOR):penup()setx(x)sety(y)setheading(towards(0, 0))width(w)pencolor(c)pendown()speed(0)def left_rotate(time, angle, length):for i in range(time):left(angle)forwa…

TOPSIS法 —— matlab

目录 1.TOPSIS法介绍 2. 计算步骤 &#xff08;1&#xff09;数据标准化 &#xff08;2&#xff09;得到加权后的矩阵 &#xff08;3&#xff09;确定正理想解和负理想解 &#xff08;4&#xff09;计算各方案到正&#xff08;负&#xff09;理想解的距离 &#xff08;…

TOPSIS法 —— python

目录 1.TOPSIS法介绍 2. 计算步骤 &#xff08;1&#xff09;数据标准化 &#xff08;2&#xff09;得到加权后的矩阵 &#xff08;3&#xff09;确定正理想解和负理想解 &#xff08;4&#xff09;计算各方案到正&#xff08;负&#xff09;理想解的距离 &#xff08;…

C语言随机读写文件

实现随机读写的关键是要按要求移动位置指针&#xff0c;这称为文件的定位。 文件定位函数rewind和fseek 移动文件内部位置指针的函数主要有两个&#xff0c;即 rewind() 和 fseek()。 rewind() 用来将位置指针移动到文件开头&#xff0c;前面已经多次使用过&#xff0c;它的…

mysql-installer安装教程(详细图文)

目录 1.安装 2.配置系统环境变量 3.配置初始化my.ini文件 4.MySQL彻底删除 5.Navicat 安装 1.安装 先去官网下载需要的msi&#xff0c;在这放出官网下载地址下载地址 这里我具体以8.0.28 为安装例子&#xff0c;除了最新版安装界面有些变动以往的都是差不多的。 过去的版本…

Java三种随机数生成方法

java的三种随机数生成方式 随机数的产生在一些代码中很常用&#xff0c;也是我们必须要掌握的。而java中产生随机数的方法主要有三种&#xff1a;     第一种&#xff1a;new Random()     第二种&#xff1a;Math.random()     第三种&#xff1a;currentTimeMil…

Python MySQL入门连接

目录 基本环境准备 navicat的傻瓜使用方式 python连接 mysql安装教程&#xff1a;传送门 基本环境准备 WINR 输入cmd回车打开cmd&#xff0c;登录mysql: mysql -h localhost -u root -p然后输入密码回车即可。 创建用户名为testuser1&#xff1a; CREATE USER testuser1…

JDBC连接sql server数据库

IDEA使用JDBC连接Sqlserver数据库 在IDEA的项目中添加对应数据库的jar包 在项目中创建util包和DBUtil类用来存放数据库连接的java代码。 完整代码 package com.hnpi.util;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; …

Python MySQL创建表

目录 一、创建表 二、检查表是否存在 三、关键字 一、创建表 在库student环境下创建表名为stu: # codinggbk #连接 import pymysqlmydb pymysql.connect(host"localhost", #默认用主机名port3306,user"root", #默认用户名password"123456"…

JDBC连接 Mysql数据库

IDEA使用JDBC连接Mysql数据库 在项目中添加连接Mysql数据库的jar包 在项目中创建util包和DBUtil类用来存放数据库连接的java代码。 完整代码 package com.zsh.util;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import…