【PAT乙级1018】——锤子剪刀布

PAT1018 锤子剪刀布 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10^​5​​ ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空 阅读详情

思路:
这个题中,要记录的结果比较多,既要记录两个人的胜负平,又要记录每局赢的那个人使用什么赢的,本来想的是在judge函数把这两个结果都保存下来,发现太麻烦。
后来想到在judge函数中记录每局两个人的胜负平,而用函数返回值来返回赢的人标号,再在主函数里记录每局赢的那个人使用什么赢的;
【补漏】:二维数组作为函数参数怎么传递问题,形参可以有一下两种写法:
void Fun(int a[][len])
void Fun(int (*b)[len])
没有特殊情况,len一般都是去二维数组的宽,调用只需把数组首地址(即数组名)传入即可;

代码如下,提交使用g++

#include<bits/stdc++.h>
using namespace std;

int judge(int rc[][3], char a, char b)
{
	if(a==b)		//平手
	{
		rc[0][1]++;
		rc[1][1]++;
		return 0;
	}
	else
	{
		if((a=='C'&&b=='J')||(a=='J'&&b=='B')
			||(a=='B'&&b=='C'))		//a赢
		{
			rc[0][0]++;
			rc[1][2]++;
			return 1;
		}			
		else						//b赢
		{
			rc[0][2]++;
			rc[1][0]++;
			return 2;
		}
	}
}

int main()
{
	int n, record[2][3], best[2][3];
	//record[2][3]表示甲乙各自胜平负数
	//best[2][3]表示甲乙各自用什么赢的统计变量
	char p1, p2;
	
	cin >> n;
	memset(record, 0, sizeof(record));
	memset(best, 0, sizeof(best));
	while(n)
	{
		int result;
		cin >> p1 >> p2;
		result = judge(record, p1, p2);
		if(result==1)
		{
			switch(p1)
			{
				case 'C':	best[0][1]++;break;
				case 'J':	best[0][2]++;break;
				case 'B':	best[0][0]++;break;
			}
		}
		else if(result==2)
		{
			switch(p2)
			{
				case 'C':	best[1][1]++;break;
				case 'J':	best[1][2]++;break;
				case 'B':	best[1][0]++;break;
			}
		}
		n--;
	}
	int max[2] = {0, 0};
	int pB[2] = {0, 0};
	char dis[3] = {'B', 'C', 'J'};
	for(int i=0; i<2; i++)
	{
		for(int j=0; j<3; j++)
		{
			if(j==0)			
				printf("%d", record[i][j]);			
			else
				printf(" %d", record[i][j]);
			if(max[i] < best[i][j])
			{
				max[i] = best[i][j];
				pB[i] = j;	
			} 
		}		
		printf("\n");
	}	
	printf("%c %c", dis[pB[0]], dis[pB[1]]);
	return 0;
}
PAT乙级1018 锤子剪刀布(C语言) 1018 锤子剪刀布 (20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,... 阅读详情

相关推荐

PAT乙级真题 1018 锤子剪刀布 C++实现

题目 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10 ^ ​5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给...

zhang35的博客 324

【PAT (Basic Level) Practice (中文)】1018 锤子剪刀布 (20 分)题解

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数N(≤105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 ...

xu_haiao的博客 732

稳赢 (15 分)PTA

L1-044 稳赢 (15 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。 输入格式: 输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。 输出格式: 对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。 输入样例: 2 ChuiZi JianDao Bu JianDao Bu ChuiZi ChuiZi End 输出样例: Bu ChuiZi Bu ChuiZi JianDao ChuiZi Bu

PTA练习题第五章7-1稳赢

问题解决: 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。 输入格式: 输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。 输出格式: 对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行

罗铠威的博客 3073

载波同步技术(一):BPSK的Costas Loop 载波同步

Author:McCrocodile 2010/11/04          载波的提取在相干解调中往往比较重要,根据信号中是否包含载频分量,载波同步一般也可以分为两种方法。包含载频分量的可以采用窄带滤波或者基本的锁相环环路来实现,不包含的则比较麻烦需要采用特殊的环路实现载波的同步。这里介绍的BPSK的载波恢复就属于后面一种。 对于不包含载频分量的信号载波同步一般有:同相-正交环(就是常说的Costas环)、判决反馈环(几乎可以适用所有调制方式)、同相-正交环衍生环(QPSK松尾环、N相同相-正交环)。

McCrocodile Blog 1万+

Cadence仿真笔记(二):传统noise仿真—共源极的噪声

cadence中进行传统噪声仿真

Bao_xue的博客 1万+

PAT 乙级 1018 锤子剪刀布(C语言)

题目: 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 ...

咸鱼七号的博客 661

深入解析i2cdetect:从基础命令到高级读写操作

本文深入解析Linux下i2cdetect工具,从基础安装、总线扫描到高级读写操作。作为i2c-tools的核心组件,i2cdetect是硬件调试的得力侦探,能快速识别I2C总线上的设备地址。文章还涵盖了i2cdump、i2cset、i2cget等进阶工具,并介绍了如何在C程序中调用读写接口进行嵌入式开发,是掌握I2C通信调试的实用指南。

weixin_29189987的博客 372

PAT乙级题解——1018 锤子剪刀布 (20分)

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10^5 ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分

Matrix990的博客 764

迈创cameralink采集卡安装操作说明

迈创cameralink采集卡安装操作说明MIL软件安装MIL软件下载获取MIL软件安装MIL软件安装常见问题 MIL软件安装 MIL软件下载获取 MIL软件安装 解压MIL安装包,点击MilSetup.exe开始安装,如下图所示; 备注:64位系统MIL软件可以同时安装32位和64位客户端,本文档默认安装64位客户端,64位系统安装32位MIL方法后续再展开讲(不建议这样用,很麻烦) 点击Launch Installation开始安装,64位系统,默认只安装64位MIL客户端 根据采集卡驱动,选择M

qq_23107577的博客 9354

2021年全网最细 VirtualBox 虚拟机安装 Ubuntu 20.04.2.0 LTS及Ubuntu的相关配置

目录一、VirtualBox 虚拟机的安装1. VirtualBox 的下载和安装2. 设置 VirtualBox 存储文件夹3. 在 VirtualBox 创建虚拟机二、Linux 操作系统(Ubuntu)的安装1. Linux 操作系统(Ubuntu)的下载2. 安装 Ubuntu3. 启动 Ubuntu三、配置 Ubuntu1. 设置终端2. 设置共享剪贴板3. 设置共享文件夹 一、VirtualBox 虚拟机的安装 VirtualBox 是由德国 Innotek 公司开发,由 Sun Microsy

XAMO Lab|代码、调试与复盘笔记 2万+

【JAVA】PAT 乙级 1018 锤子剪刀布(样例5超时,牛客网通过)

【JAVA】PAT 乙级 1018 锤子剪刀布(样例5超时,牛客网通过) 网页链接 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5​​ ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C...

TAL_DARIM的博客 341

别再用第三方黑盒库了!从零手写C#+YOLOv12推理全流程,框位准、可定制、调试快10倍

从零手写YOLO推理框架,不是为了造轮子,而是为了完全掌控代码,工业现场的需求千变万化,第三方黑盒库根本没法满足所有需求。这套代码我已经在东莞长安的3家PCB厂、深圳南山的2家3C电子厂落地了,稳定运行6个月,没有出过任何问题。如果有什么问题或者需要扩展的功能,都可以在评论区交流。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 328

PAT 乙级 1018 锤子剪刀布

PAT 乙级 1018 锤子剪刀布 输入样例: 10 C J J B C B B B B C C C C B J B B C J J 输出样例: 5 3 2 2 3 5 B B 原题链接 思路: 甲乙各用一个长度为6的数组来存储胜平负的次数以及出布赢、出锤赢、出剪赢的次数。需要注意的是本题在输入时会有换行符,而scanf()函数可以读入换行符,不会自动忽略每行的换行,所以要在scanf()函数后紧跟一个getchar(),否则会出错。 源码: #include<stdio.h> int m

a123456chj的博客 168

新手强化学习—深入解析 YOLOv13 项目包中的文件结构和各文件作用

YOLOv13是YOLO系列最新发布的计算机视觉模型。在这篇博客中,我将深入分析YOLOv13中各个文件的作用,对整个项目的文件结构有更清晰的认识。

Limiiiing的博客 484

uniapp(安卓苹果APP端):解决video组件播放视频卡顿,视频一直加载非常缓慢或加载不出来解决方案,解决多个video组件视频播放很卡一直加载非常慢怎么办(无论真机调试还是本地测试都完美搞定)

uni-app APP端video组件播放视频卡顿,uniapp video app 加载不出来解决方案,uniapp app使用video视频播放卡顿,uni-app APP端video组件播放视频卡顿_uniapp video老是加载,uniapp开发app视频在真机上卡顿,安卓app播放视频很卡,苹果ios真机运行播放视频加载很慢怎么办,解决UniApp中MP4视频播放卡顿问题,解决m3u8视频播放很卡的问题,uniapp 使用video组件,部分视频加载非常慢,uniapp视频播放卡顿,安卓视频播放

✅ 精选推荐文章 7916

PAT乙级-1018 锤子剪刀布

题目描述:https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344 大致就是给定规则剪刀赢布,布赢石头,石头赢剪刀; 输入格式: 输入第 1 行给出正整数N(≤1E5​​),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、...

YuaJniauha的博客 409

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

PAT - 乙级 1018 锤子剪刀布

1018. 锤子剪刀布 (20)时间限制100 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数N(&lt;=105),即双方交锋的次数。随后N行,每行给出一次...

yf224的博客 355

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

记PAT乙级1018-锤子剪刀布

PAT乙级1018-锤子剪刀布 注意的点 本题问的是胜利时两个人用的最多的次数,所以在平局时不用加 第一次写的时候ai>bi 后来发现不对 不用大量的if/else 转换为数字会很简便 #include <cstdio> int change(char c){ if(c=='B') return 0; if(c=='C') return 1; if(...

seanlal的博客 213

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

PAT (Basic Level) Practice 乙级 1018 锤子剪刀布

PAT (Basic Level) Practice 乙级 1018 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5​​),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、...

ZQYnn's blog 299

PAT乙级 1018 锤子剪刀布

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

polarours的博客 304

PAT 乙级 1018 锤子剪刀布 (20分)

我的个人网站Cheese的个人主页http://www.cheese.ren/ 文章来源PAT 乙级 1018 锤子剪刀布-Cheese的个人博客http://blog.cheese.ren/38 欢迎交换友链 :-) #include<bits/stdc++.h> usingnamespacestd; structPlayer { intc_win=0,j_win=0,b_win=0,defeat=0,tie=0; }; intmain()...

起司Cheese的博客 171

PAT乙级_1018 锤子剪刀布_Python_AC解法_无疑难点

本文介绍了PAT乙级1018题"锤子剪刀布"的Python解法。通过输入N次比赛记录,统计甲、乙双方的胜负平局次数及各自获胜最多的手势。解法采用遍历比赛记录,使用数组统计胜负情况,并根据字母序处理多解情况。代码虽存在变量命名不规范等问题,但逻辑清晰,通过了测试用例。输出格式要求依次显示甲乙双方的战绩及最佳手势,其中平局次数相同,胜负次数互换。

CongQianS1的博客 310

PAT乙级( 1018 锤子剪刀布)C语言超详细解析

输入第 1 行给出正整数 N(≤10 的5次方),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔。第 3 行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1 个空格。现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

m0_73566603的博客 462

【PAT乙级 1018】锤子剪刀布 C++

给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

m0_65154047的博客 311
上一篇: 【PAT乙级1017】——A除以B
下一篇: 【PAT乙级1021】——个位数统计
StevenAC
博客等级 码龄10年 16粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值