C基础入门题:石头剪刀布

1.题目描述

石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外"与“技术”两种特性深受世界人民喜爱。

游戏规则:石头打剪刀,布包石头,剪刀剪布,
现在,需要你写一个程序来判断石头剪子布游戏的结果。

2.输入格式


第一行是一个整数 N,表示一共进行了 N 次游戏。1 < N < 100。
接下来 N 行的每一行包括两个字符串,表示游戏参与者 Player1,Player2 的选择(石头、剪子或者是布):S1,S2
字符串之间以空格隔开 S1 S2 只可能取值在 Rock,Scissors,Paper(大小写敏感)中。

3.输出格式


输出包括 N 行,每一行对应一个胜利者(Player1 或者 Player2),或者游戏出现平局,则输出 Tie 。

4..输入输出样例

输入:

3
Rock Scissors
Paper Paper
Rock Paper

输出:

Player1
Tie
Player2

 5.代码:

#include <stdio.h>
#include <string.h>int main() {int N;scanf("%d", &N);char choices[N][2][10]; // 用于存储N场比赛的选择// 读取N场比赛的输入for (int i = 0; i < N; i++) {scanf("%s %s", choices[i][0], choices[i][1]);}// 确定每场比赛的结果for (int i = 0; i < N; i++) {char *player1 = choices[i][0];char *player2 = choices[i][1];// 确定胜利者if (strcmp(player1, "Rock") == 0) {if (strcmp(player2, "Rock") == 0) {printf("Tie\n");} else if (strcmp(player2, "Scissors") == 0) {printf("Player1\n");} else if (strcmp(player2, "Paper") == 0) {printf("Player2\n");}} else if (strcmp(player1, "Scissors") == 0) {if (strcmp(player2, "Rock") == 0) {printf("Player2\n");} else if (strcmp(player2, "Scissors") == 0) {printf("Tie\n");} else if (strcmp(player2, "Paper") == 0) {printf("Player1\n");}} else if (strcmp(player1, "Paper") == 0) {if (strcmp(player2, "Rock") == 0) {printf("Player1\n");} else if (strcmp(player2, "Scissors") == 0) {printf("Player2\n");} else if (strcmp(player2, "Paper") == 0) {printf("Tie\n");}}}return 0;
}

 6.简单介绍一下strcmp:

strcmp 是 C 语言中的一个字符串比较函数,用于比较两个字符串是否相等。函数的原型为

int strcmp(const char *str1, const char *str2); 
它接受两个参数 str1 和 str2,分别是待比较的字符串(根据的是ascii值)。函数返回值为整数:
若 str1 小于 str2,返回一个负数。
若 str1 等于 str2,返回 0。
若 str1 大于 str2,返回一个正数。
在石头剪子布游戏的代码中,strcmp 函数被用来比较两个玩家选择的字符串,例如 "Rock"、"Scissors"、"Paper",以确定胜利者。根据不同的比较结果,选择输出 "Player1"、"Player2" 或 "Tie"。

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

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

相关文章

网络安全法律框架更新:最新合规要求与企业应对策略

网络安全法律框架的最新更新 近期&#xff0c;中国的网络安全法律框架经历了重要的更新。2022年&#xff0c;《网络安全法》迎来了首次修改&#xff0c;这一修订主要是为了与《数据安全法》和《个人信息保护法》等新实施的法律进行衔接协调&#xff0c;完善法律责任制度&#x…

slf4j日志框架和logback详解

slf4j作用及其实现原理 SLF4J&#xff08;Simple Logging Facade for Java&#xff09;是一种日志框架的抽象层&#xff0c;它并不是一个具体的日志实现&#xff0c;而是一个接口或门面&#xff08;Facade&#xff09;&#xff0c;旨在为各种不同的日志框架提供一个统一的API。…

AI绘画Stable Diffusion 零基础入门 —AI 绘画原理与工具介绍,万字解析AI绘画的使用教程

大家好&#xff0c;我是设计师阿威 想要入门 AI 绘画&#xff0c;首先需要了解它的原理是什么样的。 其实很早就已经有人基于深度学习模型展开了对图像生成的研究了&#xff0c;但在那时&#xff0c;生成的图像分辨率和内容都非常抽象。 直到近两年&#xff0c;AI 产出的图像…

防火墙nat基础实验

一&#xff0c;实验拓扑&#xff1a; 二&#xff0c;实验需求&#xff1a; 1&#xff0c;办公区设备可以通过电信链路和移动链路上网(多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换) 2&#xff0c;分公司设备可以通过总公司的移动链路和电信链路访问到Dmz区的ht…

俄罗斯VK 平台广告投放的注意事项有哪些?

以下是为您制定适合 VK 平台的广告投放策略的一些建议&#xff1a; 市场调研 深入了解俄罗斯市场的需求、趋势和竞争情况。 分析目标受众的兴趣、行为和消费习惯&#xff0c;以确定最有潜力的细分市场。 明确目标 确定具体、可衡量的广告目标&#xff0c;例如增加品牌知名度…

Appium自动化测试系列: 2. 使用Appium启动APP(真机)

历史文章&#xff1a;Appium自动化测试系列: 1. Mac安装配置Appium_mac安装appium-CSDN博客 一、准备工作 1. 安卓测试机打开调试模式&#xff0c;然后使用可以传输数据的数据线连接上你的电脑。注意&#xff1a;你的数据线一定要支持传输数据&#xff0c;有的数据线只支持充…

蔚来汽车:拥抱TiDB,实现数据库性能与稳定性的飞跃

作者&#xff1a; Billdi表弟 原文来源&#xff1a; https://tidb.net/blog/449c3f5b 演讲嘉宾&#xff1a;吴记 蔚来汽车Tidb爱好者 整理编辑&#xff1a;黄漫绅&#xff08;表妹&#xff09;、李仲舒、吴记 本文来自 TiDB 社区合肥站走进蔚来汽车——来自吴记老师的演讲…

java数组之——了解十大排序算法(动画版)

详细的冒泡排序和快速排序请查看文章&#xff1a;java数组之冒泡排序、快速排序-CSDN博客https://blog.csdn.net/weixin_44554794/article/details/140361078 一、插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 八、计数排序 九、桶…

【2024_CUMCM】时间序列1

目录 概念 时间序列数据 时期和时点时间序列 数值变换规律 长期趋势T 季节趋势S 循环变动C 不规则变动I 叠加和乘积模型 叠加模型 相互独立 乘积模型 相互影响 注 spss缺失值填补 简单填补 五种填补方法 填补原则 1.随机缺失 2.完全随机缺失 3.非随机缺失…

半小时获得一张ESG入门证书【详细中英文笔记一】

前些日子&#xff0c;有朋友转发了一则小红书的笔记给我&#xff0c; 标题是《半小时获CFI官方高颜值免费证书 ESG认证》。这对考证狂魔的我来说&#xff0c;必然不能错过啊&#xff0c;有免费的羊毛不薅白不薅。 ESG课程的 CFI 官方网址戳这里&#xff1a;CFI 于是信心满满的…

「iOS」暑假第一周 —— ZARA的仿写

暑假第一周 ZARA的仿写 文章目录 暑假第一周 ZARA的仿写写在前面viewDidLoad 之中的优先级添加自定义字体下载想要的字体添加至info之中找到字体名字并应用 添加应用图标和启动页面 写在前面 暑假第一周留校学习&#xff0c;对于ZARA进行了仿写&#xff0c;在仿写的过程之中&a…

qt 设置自定义控件的内边距

1.qt 设置自定义控件的内边距 在 Qt 中&#xff0c;如果你想要设置自定义控件的内边距&#xff0c;你可以通过几种方式来实现。这主要取决于你的自定义控件是如何实现的&#xff0c;以及你希望内边距如何影响控件的布局和绘制。以下是一些常见的方法&#xff1a; 使用样式表&a…

护网HW面试常问——webshell内存马流量特征以及查杀

参考&#xff1a;学习干货|HVV必学远控工具及Webshell流量合集分析(建议收藏附面试题) 蚁剑 ini_set ini_set_time ini_set_limit ini_set("display_errors","0") 部分代码明文传输&#xff0c;较好辨认 哥斯拉 1、User-Agent (弱特征) 在默认的情况…

【坑】微信小程序开发wx.uploadFile和wx.request的返回值格式不同

微信小程序 使用wx.request&#xff0c;返回值是json&#xff0c;如下 {code:200,msg:"更新用户基本信息成功",data:[]} 因此可以直接使用如 res.data.code获取到返回值中的code字段 但是&#xff0c;上传图片需要使用wx.uploadFile&#xff0c;返回的结果如下 …

Hive表【汇总】

提前必备 1、内部表和外部表的区别 概念讲解&#xff1a; 外部表&#xff1a;1、存放他人给予自己的数据2、当我们删除表操作时&#xff0c;会将表的元数据删除&#xff0c;保留数据文件 内部表&#xff1a;1、存放已有的数据2、当我们删除表操作时&#xff0c;会将表的元数据…

CCNA-2-V7-模块7–9:可用且可靠的网络考试答案

1.一台启用了DHCP的客户端PC刚刚启动。客户端PC在与DHCP服务器通信时,将在哪两个步骤中使用广播消息?(选两个。) DHCPDISCOVERDHCPACKDHCPOFFERDHCPREQUESTDHCPNAK 2.管理员发出命令:管理员想达到什么目的? Router(config)# interface g0/1 Router(config-if)# ip address …

Java中标识符和关键字

1.标识符 public class HelloWorld{public static void main(String[] args){System.out.println("Hello,world");} }上述代码中在public class 后面的HelloWorld称为类名&#xff0c;main称为方法名&#xff0c;也可以将其称为标识符&#xff0c;即&#xff1a;在程…

算法学习day12(动态规划)

一、不同的二叉搜索树 二叉搜索树的性质&#xff1a;父节点比左边的孩子节点都大&#xff1b;比右边的孩子节点都小&#xff1b; 由图片可知&#xff0c;dp[3]是可以由dp[2]和dp[1]得出来的。(二叉搜索树的种类和根节点的val有关) 当val为1时&#xff0c;左边是一定没有节点的…

qt 创建一个包含两按钮的自定义控件,且按钮和自定义控件间没有间距

在Qt中创建一个包含两个按钮的自定义控件&#xff0c;并确保按钮与自定义控件之间没有间距&#xff0c;可以通过继承QWidget并手动布局按钮来实现。以下是一个简单的示例代码&#xff0c;展示了如何创建一个这样的自定义控件&#xff1a; #include <QWidget> #include &…

C语言 ——— 模拟实现strcpy函数

目录 strcpy函数功能介绍 strcpy函数的模拟实现 strcpy函数功能介绍 学习并使用strcpy函数-CSDN博客 strcpy函数的模拟实现 代码演示&#xff1a; #include<stdio.h> #include<assert.h> char* my_strcpy(char* destination, const char* source) {assert(des…