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

文章目录

  • 1018 锤子剪刀布

1018 锤子剪刀布

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

在这里插入图片描述

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

输入格式:

输入第 1 行给出正整数 N(≤10 的5次方),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。

输出格式:

输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔。第 3 行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1 个空格。如果解不唯一,则输出按字母序最小的解。

输入样例:

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

代码示例

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>// 该函数用于找出获胜次数最多的手势对应的字符
// 输入参数 x 是一个长度为 3 的整型数组,分别记录 'B'、'C'、'J' 三种手势的获胜次数
// 返回值为获胜次数最多的手势对应的字符
char findmax(int x[]) {int max1 = 0;  // 用于记录当前最大的获胜次数,初始化为 0int t1;  // 用于记录最大获胜次数对应的手势在数组中的索引// 遍历数组 x,找出最大的获胜次数以及对应的索引for (int i = 0; i < 3; i++) {if (x[i] > max1) {max1 = x[i];  // 更新最大获胜次数t1 = i;  // 记录最大获胜次数对应的索引}}// 根据索引 t1 返回对应的手势字符if (t1 == 0) {return 'B';  // 索引 0 对应 'B' 手势} else if (t1 == 1) {return 'C';  // 索引 1 对应 'C' 手势} else {return 'J';  // 索引 2 对应 'J' 手势}
}int main() {int n;  // 用于存储双方交锋的总次数scanf("%d", &n);  // 从标准输入读取交锋次数char a, b;  // 分别用于存储甲方和乙方每次交锋给出的手势// 用于记录甲方和乙方的胜、平、负次数int jia_win = 0;  // 甲方获胜次数int yi_win = 0;   // 乙方获胜次数int ping = 0;     // 平局次数int jia_lose = 0; // 甲方失败次数int yi_lose = 0;  // 乙方失败次数// 用于记录甲方和乙方每种手势的获胜次数// x[0] 记录甲方 'B' 手势的获胜次数,x[1] 记录甲方 'C' 手势的获胜次数,x[2] 记录甲方 'J' 手势的获胜次数// y[0] 记录乙方 'B' 手势的获胜次数,y[1] 记录乙方 'C' 手势的获胜次数,y[2] 记录乙方 'J' 手势的获胜次数int x[3] = {0};int y[3] = {0};// 循环处理 n 次交锋记录for (int i = 0; i < n; i++) {getchar();  // 消耗掉上一次输入(scanf("%d", &n))后的换行符// 从标准输入读取甲方和乙方本次交锋给出的手势scanf("%c %c", &a, &b);// 判断甲方是否获胜if ((a == 'B' && b == 'C') || (a == 'J' && b == 'B') || (a == 'C' && b == 'J')) {jia_win++;  // 甲方获胜次数加 1// 根据甲方获胜的手势更新 x 数组中对应手势的获胜次数if (a == 'B') {x[0]++;  // 'B' 手势获胜次数加 1} else if (a == 'C') {x[1]++;  // 'C' 手势获胜次数加 1} else {x[2]++;  // 'J' 手势获胜次数加 1}yi_lose++;  // 乙方失败次数加 1} // 判断是否平局else if ((a == 'B' && b == 'B') || (a == 'J' && b == 'J') || (a == 'C' && b == 'C')) {ping++;  // 平局次数加 1} // 否则乙方获胜else {jia_lose++;  // 甲方失败次数加 1// 根据乙方获胜的手势更新 y 数组中对应手势的获胜次数if (b == 'B') {y[0]++;  // 'B' 手势获胜次数加 1} else if (b == 'C') {y[1]++;  // 'C' 手势获胜次数加 1} else {y[2]++;  // 'J' 手势获胜次数加 1}yi_win++;  // 乙方获胜次数加 1}}// 调用 findmax 函数找出甲方和乙方获胜次数最多的手势对应的字符char m = findmax(x);  // 甲方获胜次数最多的手势字符char m1 = findmax(y); // 乙方获胜次数最多的手势字符// 输出甲方的胜、平、负次数printf("%d %d %d\n", jia_win, ping, jia_lose);// 输出乙方的胜、平、负次数printf("%d %d %d\n", yi_win, ping, yi_lose);// 输出甲方和乙方获胜次数最多的手势字符printf("%c %c", m, m1);return 0;
}

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

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

相关文章

2025 年 2 月 TIOBE 指数

2025 年 2 月 TIOBE 指数 二月头条:快,更快,最快! 现在,世界需要每秒处理越来越多的数字,而硬件的发展速度却不够快,程序的速度变得越来越重要。话虽如此,快速编程语言在 TIOBE 指数中取得进展也就不足为奇了。编程语言 C++ 最近攀升至第 2 位,Go 已稳居前 10 名,Ru…

【硬件设计细节】缓冲驱动器使用注意事项

目录 一、缓冲驱动器核心功能与选型原则 二、电路设计关键点 三、布局与布线规范 四、特殊场景处理 五、测试与验证 六、典型问题与解决方案 七、设计流程建议 一、缓冲驱动器核心功能与选型原则 信号增强与隔离 驱动能力匹配&#xff1a;根据负载电流需求选择缓冲器&a…

TCP

TCP 是什么&#xff1f; TCP ( Transmission Control Protocol 传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP 对应的应用层协议 FTP&#xff1a;定义了文件传输协议&#xff0c;使用 21 端口 TeInet&#xff1a;它是一种用于远程登…

HTML5+CSS多层级ol标签序号样式问题

在CSS中&#xff0c;ol标签用于创建有序列表&#xff0c;而多层级的ol标签可以通过CSS实现不同的序号样式。以下是一些常见的问题和解决方案&#xff1a; 1. 多层级ol的序号格式问题 默认情况下&#xff0c;多层级的ol标签会自动继承父级的序号格式&#xff0c;但有时我们可能…

人工智能3d点云之Pointnet++项目实战源码解读(点云分类与分割)

一.项目文件概述 二.数据读取模块配置 实际代码运行时是先定义与加载好模型&#xff0c;然后再去读取数据进来传入到模型网络中去训练。但现在反过来先读取数据开始。 进入ModelNetDataLoader类的_getitem方法, 做标准化的目的是处理异常大的数值 上面返回的cls是类别,相当于…

[250217] x-cmd 发布 v0.5.3:新增 DeepSeek AI 模型支持及飞书/钉钉群机器人 Webhook 管理

目录 X-CMD 发布 v0.5.3&#x1f4c3;Changelog&#x1f9e9; deepseek&#x1f9e9; feishu|dingtalk&#x1f4e6; x-cmd✅ 升级指南 X-CMD 发布 v0.5.3 &#x1f4c3;Changelog &#x1f9e9; deepseek 新增 deepseek 模块&#xff0c;用户可通过 deepseek 直接请求使用 …

图论:tarjan 算法求解强连通分量

题目描述 有一个 n n n 个点&#xff0c; m m m 条边的有向图&#xff0c;请求出这个图点数大于 1 1 1 的强连通分量个数。 输入格式 第一行为两个整数 n n n 和 m m m。 第二行至 m 1 m1 m1 行&#xff0c;每一行有两个整数 a a a 和 b b b&#xff0c;表示有一条…

led+串口代码 重定向 STM32F030F4P6 fgetc multiply defined错误

led串口 重定向 STM32F030F4P6 重定向报错 axf: Error: L6200E: Symbol fgetc multiply defined (by usart.o and main.o). 把 #include "stdio.h" int fputc(int ch, FILE *fp) {HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);return ch; }int f…

Letsencrypt+certbot为域名免费配置ssl

1、基础概念 Let’s Encrypt 是一个提供免费 SSL/TLS 证书的认证机构&#xff0c;它的目标是让互联网上的通信更加安全&#xff0c;特别是普及 HTTPS。通过 Let’s Encrypt 提供的证书&#xff0c;网站可以使用加密连接&#xff0c;保护用户的数据传输。 Certbot 是一个由电子…

BSD协议栈:UDP发送

BSD实现 在BSD中UDP头部数据结构如下&#xff1a; /** Udp protocol header.* Per RFC 768, September, 1981.*/ struct udphdr {u_short uh_sport; /* source port */u_short uh_dport; /* destination port */short uh_ulen; /* udp length */u_short uh_sum; /* udp …

QT (四)模型/视图 QFileSystemModel,QStringListModel,QStandardItemModel

思考&#xff1a;QTableWidget 在某种程度上可以等价为QStandardItemModel&#xff0c;同理&#xff0c;其他的功能也有类似的等价&#xff0c;但是以当前的QTableWidget 和QStandardItemModel为例的话&#xff0c;两者都是用于实现建立表格的相关组件&#xff0c;只不过QStand…

Unity热更新方案HybridCLR+YooAsset,从零开始,保姆级教程,纯c#开发热更

文章目录&#xff1a; 一、前言二、创建空工程三、接入HybridCLR四、接入YooAsset五、搭建本地资源服务器Nginx六、实战七、最后八、后记 一、前言 unity热更有很多方案&#xff0c;各种lua热更&#xff0c;ILRuntime等&#xff0c;这里介绍的是YooAssetHybridCLR的热更方案&a…

Zabbix——监控Windows下某个文件夹的所有文件变化

获取所有的指定路径下的文件列表 以D:\Apps这个文件夹下的所有文件为例&#xff0c;我需要找到这个文件夹里面的子文件夹中的所有文件&#xff0c;但是排除backup这个文件夹&#xff0c;下面我们来看怎么操作 在scripts目录下创建check_file_in_D_Apps.ps1文件&#xff0c;内容…

C++ Primer 函数匹配

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

java八股文-mysql

1. 索引 1.1 什么是索引 索引(index)是帮助Mysql高效获取数据的数据结构(有序).提高数据的检索效率,降低数据库的IO成本(不需要全表扫描).通过索引列对数据进行排序,降低数据排序成本,降低了CPU的消耗. 1.2 mysql索引使用的B树? 1. 没有使用二叉树&#xff0c;最坏情况o&…

Docker拉不下来镜像问题解决法案

打开docker的设置界面 配置如下&#xff1a; vi /etc/docker/daemon.json {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["…

春招项目=图床+ k8s 控制台(唬人专用)

1. 春招伊始 马上要春招了&#xff0c;一个大气的项目&#xff08;冲击波项目&#xff09;直观重要&#xff0c;虽然大家都说基础很重要&#xff0c;但是一个足够新颖的项目完全可以把你的简历添加一个足够闪亮的点。 这就不得不推荐下我的 k8s 图床了&#xff0c;去年折腾快…

wordpress主题插件开发中高频使用的38个函数

核心模板函数 get_header()/get_footer()/get_sidebar() – 加载模板部件 the_title()/the_content()/the_excerpt() – 显示文章标题、内容、摘要 the_post() – 循环中获取文章数据 bloginfo(‘url’) – 获取站点URL wp_head()/wp_footer() – 输出头部/尾部代码 wp_n…

vue点击左边导航,右边出现页面步骤

vue点击左边导航&#xff0c;右边出现页面 步骤 一定要import不然会出错 index.js Course作为Homeview子路由 Homeview加入<Routerview> 点击跳转<RouterLink to> 父Homeview中有RouterView&#xff08;路由出口&#xff0c;跳转至相应路径&#xff09;和Router…

阿里云视频点播,基于thinkphp8上传视频

前端参考官方示例(jQuery版) <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>阿里云 JavaScript上传SDK Demo (使用jquery)</title><script src"__STATIC__/jquery.min.js"></script><sc…