输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:4 4 4 4-joker JOKER 请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR
// ConsoleApplication10.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>
using namespace std;
//判断是否存在双王
bool judeDoubleJoker(vector<stringcardVec)
{
if (cardVec.size() != 2) return false;
bool result = true;
for (int i = 0;i < cardVec.size();++i)
{
if (cardVec[i] != "16"&&cardVec[i] != "17")
{
result = false;
break;
}
}
return result;
}
//判断是否有炸弹
//输出
void printVec(vector<stringcardVec)
{
for (int i = 0;i < cardVec.size();++i)
{
// cout << cardVec[i] << " ";
//对输入数据的处理
if (cardVec[i] == "11")
{
cout << "J";
if (i != cardVec.size() - 1)
{
cout << " ";
}
}
else if (cardVec[i] == "12")
{
cout << "Q" ;
if (i != cardVec.size() - 1)
{
cout << " ";
}
}
else if (cardVec[i] == "13")
{
cout << "K" ;
if (i != cardVec.size() - 1)
{
cout << " ";
}
}
else if (cardVec[i] == "14")
{
cout << "A" ;
if (i != cardVec.size() - 1)
{
cout << " ";
}
}
else if (cardVec[i] == "15")
{
cout << "2" ;
if (i != cardVec.size() - 1)
{
cout << " ";
}
}
else if (cardVec[i] == "16")
{
cout << "joker" ;
if (i != cardVec.size() - 1)
{
cout << " ";
}
}
else if (cardVec[i] == "17")
{
cout << "JOKER" ;
if (i != cardVec.size() - 1)
{
cout << " ";
}
}
else {
cout << cardVec[i] ;
if (i != cardVec.size() - 1)
{
cout << " ";
}
}
}
}
//处理数据
void pushCardVec(string card,vector<string&vec)
{
//对输入数据的处理
if (card == "J")
{
vec.push_back("11");
}
else if (card == "Q")
{
vec.push_back("12");
}
else if (card == "K")
{
vec.push_back("13");
}
else if (card == "A")
{
vec.push_back("14");
}
else if (card == "2")
{
vec.push_back("15");
}
else if (card == "joker")
{
vec.push_back("16");
}
else if (card == "JOKER")
{
vec.push_back("17");
}
else {
vec.push_back(card);
}
}
//判断大小
void jude(vector<stringcardVec1, vector<stringcardVec2)
{
if (stoi(cardVec1[0]) stoi(cardVec2[0]))
{
printVec(cardVec1);
}
else if (stoi(cardVec1[0]) < stoi(cardVec2[0]))
{
printVec(cardVec2);
}
else
{
cout << "ERROR";
}
}
int main()
{
string card;
vector<stringcardVec1;
vector<stringcardVec2;
int flag = 0;
while (cin>>card)
{
if (card.find('-') >10 && flag==0)
{
//对输入数据的处理
pushCardVec( card, cardVec1);
}
else if (card.find('-') >10 && flag == 1)
{
pushCardVec(card, cardVec2);
}
else
{
string card1=card.substr(0,card.find('-'));
pushCardVec(card1, cardVec1);
string card2=card.substr(card.find('-')+1);
pushCardVec(card2, cardVec2);
flag = 1;
}
}
//cout << "cardVec1:";
//for (int i = 0;i < cardVec1.size();++i)
//{
// cout << cardVec1[i] << " ";
//}
//cout << "carVec1Size:" << cardVec1.size() << endl;
//cout << endl << "cardVec2:";
//for (int i = 0;i < cardVec2.size();++i)
//{
// cout << cardVec2[i] << " ";
//}
//cout << "carVec2Size:" << cardVec2.size() << endl;
//cout << endl<<"最大的数是:";
if (cardVec1.size() == cardVec2.size())
{
jude(cardVec1, cardVec2);
}
else {
if (judeDoubleJoker(cardVec1) == true )
{
printVec(cardVec1);
}
else if (judeDoubleJoker(cardVec2) == true || cardVec2.size() == 4)
{
printVec(cardVec2);
}
else if (cardVec1.size() == 4)
{
printVec(cardVec1);
}else if (cardVec2.size() == 4)
{
printVec(cardVec2);
}
else
{
cout << "ERROR";
}
}
return 0;
};
输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:4 4 4 4-joker JOKER 请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR的更多相关文章
- ALSA声卡驱动中的DAPM详解之五:建立widget之间的连接关系
前面我们主要着重于codec.platform.machine驱动程序中如何使用和建立dapm所需要的widget,route,这些是音频驱动开发人员必须要了解的内容,经过前几章的介绍,我们应该知道如 ...
- Socket编程——怎么实现一个服务器多个客户端之间的连接
package coreBookSocket; import java.io.IOException; import java.net.ServerSocket; import java.net. ...
- 浅谈Oracle表之间各种连接
Oracle表之间的连接分为三种: 1.内连接(自然连接) 2.外连接 2.1.左外连接(左边的表不加限制,查询出全部满足条件的结果) 2.2.右外连接(右边的表不加限制,查询出全部满足条件的结果) ...
- 客户端一个http连接包含两个方向,一个是这个http连接的输入,另一个是这个http连接的输出。
1.客户端一个http连接包含两个方向,一个是这个http连接的输入,另一个是这个http连接的输出. 利用httpclient进行ip地址和端口号连接后,http的输出端作为http请求参数设置.h ...
- 【Xamarin挖墙脚系列:配置Mac之间的连接问题】
原文:[Xamarin挖墙脚系列:配置Mac之间的连接问题] 首先建议把MAC的防火墙关掉,呵呵, 其次,去设置里,允许所有用户远程登录连接MAC
- erlang与c之间的连接
http://blog.chinaunix.net/uid-22566367-id-382012.html erlang与c之间的连接参考资料:网络资料作者:Sunny 在Programming ...
- capsule network——CNN仅仅考虑了“有没有”的问题,没有考虑feature map的结构关系。这个结构关系包括位置,角度等。Capsule layer的输出也跟feature map的max-pooling输出不同,capsule layer的输出是一个向量,这个向量包含了位置,大小,角度等信息,这是feature map仅能输出一个值所不具备的;训练比较慢
capsule network--<Dynamic Routing Between Capsules> from:https://zhuanlan.zhihu.com/p/31491520 ...
- 有效Log4j按指定级别定向输出日志到指定的输出文件地址配置Threshold,log4j中如何屏蔽父logger输出源rootlogger的additivity配置,log4j向多个文件记录日志
log4j向多个文件记录日志 关键配置,指定想要的日志级别信息输出到指定的日志文件中: log4j.appender.errorLogger.Threshold=ERROR #扩展,可指定只在子类自己 ...
- printf格式输出数字,位数不够前面补0,适用与输出编号
printf格式输出数字,位数不够前面补0,适用与输出编号 printf格式输出:%[flags][width][.perc][F|N|h|l]type 用到了flags中的 0 (注意是零不是欧) ...
随机推荐
- BZOJ 2146 Construct
Construct [问题描述] 随着改革开放的深入推进…… 小T家要拆迁了…… 当对未来生活充满美好憧憬的小T看到拆迁协议书的时候,小T从一位大好的社会主义青年变成了绝望的钉子户. 由于小T的家位于 ...
- DBus介绍
1. 介绍 DBus是一种桌面环境的进程间通讯(IPC)机制,有低时延.低消耗等优点 基于socket,提供了一对一的对等通讯:使用dbus-daemon作为后台进程时,可实现多对多通讯 由如下三个层 ...
- android基本控件学习-----ScrollView
ScrollView(滚动条)的讲解: 一.对于ScrollView滚动条还是很好理解的,共有两种水平和垂直,ScrollView和HorizontalScrollview,这个里面不知道该总结写什么 ...
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---40
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- NYOJ 20.吝啬的国度-DFS+STL(vector保存上一节点)
整理代码 吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第 ...
- Find Median from Data Stream - LeetCode
Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...
- 牛客网暑期ACM多校训练营 记录
所有牛客多校的做题记录请右转队伍wiki Name Date Rank 2018 Multi-University,Nowcoder Day 1 2018.7.19 16/338 5/10 https ...
- Akka之Actor生命周期
我们首先来看一下官方给出的Actor的声明周期的图: 在上图中,Actor系统中的路径代表一个地方,其可能会被活着的Actor占据.最初路径都是空的.在调用actorOf()时,将会为指定的路径分配根 ...
- 2016北京集训测试赛(十一)Problem C: 树链问题
Solution 智障暴力题, 每个点维护一下子树信息, 树剖就好了. 我居然还傻了写了一发毛毛虫... #include <cstdio> #include <cctype> ...
- ajax跨域解决办法
在使用jquery的ajax作请求时,http://127.0.0.1:8080,类似这样的一个本地请求,会产生跨域问题, 解决办法一: jsonp: var url= "http://12 ...