首页 > 编程语言 >自动洗牌机c++

自动洗牌机c++

时间:2023-02-25 10:44:06浏览次数:51  
标签:temp int 洗牌 primary c++ num 自动 suit order

首先是字符数组与结构体的两个应用比较,牌组s1,s2,s3...,如果用字符数组是不能够把s1捆绑在一起的,观察发现牌组都是一个花色捆绑一个数字,可以联想到结构体。

其次因为涉及交换,可以联想到交换需要一个临时temp结构体来存储,洗牌是重复覆盖行为,所以最后是与自己交换。

期间要注意的是temp.suit[order[i]-1],这里是要减1的,因为数组从0开始。

还有一个数学小发现就是开头for(int i=0;i<13;i++)是i<13,因为牌组也是有规律的,每隔十三张牌一个花色,且数字依次是从1到13,所以后续可为i+13,i+26,i+39。

还有就是格式小问题,最后输出没有空格,所以最后要单独拿出来输出。

代码如下:

# include <iostream>
using namespace std;
int main(){
struct cards{
char suit[54];
int num[54];
};
cards primary;
for(int i=0;i<13;i++){
primary.suit[i] = 'S';
primary.suit[i+13] = 'H';
primary.suit[i+26] = 'C';
primary.suit[i+39] = 'D';
}
primary.suit[52] = primary.suit[53] = 'J';
for(int j=0;j<13;j++){
primary.num[j] = primary.num[j+13] = primary.num[j+26] = primary.num[j+39] = j+1;
}
primary.num[52] = 1;
primary.num[53] = 2;
int n;
int order[54];
cin>>n;
for(int i=0;i<54;i++){
cin>>order[i];
}
while(n--){
cards temp;
for(int i=0;i<54;i++){
temp.suit[order[i]-1] = primary.suit[i];
temp.num[order[i]-1] = primary.num[i];
}
for(int j=0;j<54;j++){
primary.suit[j] = temp.suit[j];
primary.num[j] = temp.num[j];
}
}
for(int i=0;i<53;i++){
cout<<primary.suit[i]<<primary.num[i]<<" ";
}
cout<<primary.suit[53]<<primary.num[53]<<endl;
return 0;
}

标签:temp,int,洗牌,primary,c++,num,自动,suit,order
From: https://www.cnblogs.com/epiphany-blogs/p/17153925.html

相关文章

  • C++类的使用
    类内成员函数声明:返回类型函数名()类内成员函数定义:在类外定义;写法:返回类型类名::函数名类内成员函数调用:类名.函数名例子classBox{public:doublel......
  • 利用Github Action自动化部署SpringBoot项目
    环境准备一台拥有公共IP的1核1G以上配置的Linux云服务器。笔者选用的Linux发行版为CentOSLinuxrelease7.0.1406(Core)已安装好JDK8与Maven。若是还未安装,可以参考以......
  • C/C++医院排队看病系统[2023-02-25]
    C/C++医院排队看病系统[2023-02-25]题目18医院排队看病系统[说明及要求]病人到医院看病,需要排队等候,先到先看。请编写程序模拟病人看病的过程。(1)后到的病人必须排......
  • c++调用chatgpt api
    前提:要有chatgpt账号,不会注册的关注抖音:21402780125,有免费教程!!要在C++中调用ChatGPTAPI,您可以使用以下步骤:首先,安装C++的HTTP客户端库,例如libcurl或者Poco......
  • C/C++运动会管理系统[2023-02-24]
    C/C++运动会管理系统[2023-02-24]题目四运动会管理系统1题目背景某大型运动会需要一个管理系统对所有参与的运动员及其成绩进行统一管理,本题目要求用C语言设计一个运......
  • C/C++设计银行储蓄系统[2023-02-24]
    C/C++设计银行储蓄系统[2023-02-24]题目28设计银行储蓄系统开发一个实现储蓄业务最常用功能的系统,在该软件系统中,以储户信息为核心,围绕储户信息,实现其存款、取款和查询......
  • 如何在Jupyter lab 中设置自动提示
    方法:这需要在开头出添加: %configIPCompleter.greedy=True#TAB可以出现代码提示每次输入部分,然后按住TAB就有提示啦!!!......
  • 自动配置
    SpringBoot特点依赖管理父项目做依赖管理:父项目中声明了非常多的依赖,只要子项目继承了父项目,那么子项目写依赖就不需要版本号了开发导入starter场景启动器1.当需要用......
  • 利用 fastline 进行自动化打包
    前期准备-工具安装安装fastline工具#安装fastline$sudogeminstall-n/usr/local/binfastlane#查看fastline版本$fastlane--version再fastline......
  • mysql主从自动搭建
    1.主服务器​​master.sh​​#!/bin/bash#====================================================#Author:Mr.Song#CreateDate:2019-02-21#Description:autoconfig......