C语言—报数游戏

news2024/9/21 0:45:47

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	char op;
	int n = 0, m, flag = 0;

	srand(time(NULL));
	int x = rand() % 2;
	if (x == 0) printf("玩家先报!\n");
	else printf("电脑先报!\n");

	do
	{
		if (x == 0 || flag == 1)//玩家报数
		{
			flag = 1;

			printf("请输入你的报数:");
			scanf_s("%d%c", &n, &op);
			if (op == ' ')//如果你报两个数,比如5 6,则op等于空格,然后再输另一个数
			{
				scanf_s("%d", &m);
				n = m;
			}
			else (op == '\n');//如果你报一个数,比如7,则op等于回车换行,就不再输入数据了

			if (n == 30)
			{
				printf("你赢了电脑!");
				break;
			}
		}

		if (x == 1 || flag == 1)//电脑报数
		{
			flag = 1;

			printf("电脑报数为:");
			if ((30 - n) % 3 == 1)
			{
				printf("%d\n", n + 1);
				n = n + 1;
			}
			else if ((30 - n) % 3 == 2)
			{
				printf("%d %d\n", n + 1, n + 2);
				n = n + 2;
			}
			else
			{
				int y = rand() % 2;
				if (y == 0)
				{
					printf("%d\n", n + 1);
					n = n + 1;
				}
				else
				{
					printf("%d %d\n", n + 1, n + 2);
					n = n + 2;
				}
			}

			if (n == 30)
			{
				printf("你输了!");
                break;
            }
		}
	} while (n < 30);
	return 0;
}

用函数

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int ramdom();//随机生成0或者1
int computer_input(int n);//电脑报数
int player_input(int n);//玩家报数

int main()
{
	int n = 0;

	int x = ramdom();
	if (x == 0) printf("玩家先报!\n");
	else printf("电脑先报!\n");

	if (x == 1) n = computer_input(n);
	do
	{
		n = player_input(n);
		if (n == 30)
		{
			printf("你赢了电脑!");
			break;
		}

		n = computer_input(n);
		if (n == 30)
		{
			printf("你输了!");
			break;
		}

	} while (n < 30);
	return 0;
}

int ramdom()
{
	srand(time(NULL));
	return rand() % 2;
}
int computer_input(int n)
{
	printf("电脑报数为:");
	if ((30 - n) % 3 == 1)
	{
		printf("%d\n", n + 1);
		n = n + 1;
	}
	else if ((30 - n) % 3 == 2)
	{
		printf("%d %d\n", n + 1, n + 2);
		n = n + 2;
	}
	else
	{
		if (ramdom() == 0)
		{
			printf("%d\n", n + 1);
			n = n + 1;
		}
		else
		{
			printf("%d %d\n", n + 1, n + 2);
			n = n + 2;
		}
	}
	return n;
}
int player_input(int n)
{
	char op;
	int m;
	printf("请输入你的报数:");
	scanf_s("%d%c", &n, &op);
	if (op == ' ')
	{
		scanf_s("%d", &m);
		n = m;
	}
	else (op == '\n');
	return n;
}

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

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

相关文章

【原创】java+swing+mysql学生管理系统设计与实现

个人主页&#xff1a;程序员杨工 个人简介&#xff1a;从事软件开发多年&#xff0c;前后端均有涉猎&#xff0c;具有丰富的开发经验 博客内容&#xff1a;全栈开发&#xff0c;分享Java、Python、Php、小程序、前后端、数据库经验和实战 开发背景&#xff1a; 这两天简单开发…

【数据结构】Map与Set

前言 前两篇文章我们研究了二叉搜索树与哈希表的结构与特点&#xff0c;他们二者是Map与Set这两个接口实现的底层结构&#xff0c;他们利用了搜索树与哈希表查找效率高这一特点&#xff0c;是一种专门用来进行搜索操作的容器或数据结构。本篇文章就让我们一起来梳理这两个接口的…

CTFHUB | web进阶 | PHP | Bypass disable_function | Backtrace UAF

开启题目 查看源码&#xff0c;发现可以蚁剑连接 进入之后无发现&#xff0c;使用插件 PHP7 Backtrace UAF 之后直接进入终端了 查看根目录之后发现了有两个 flag 文件&#xff0c;之后发现了本题的 flag

[SWPU2019]Web11

打开题目&#xff0c;看到登录口&#xff0c;注册账号看看 admin2&#xff0c;112 申请发布一下广告&#xff0c;sql注入试试 查看详情 看到sql&#xff0c;猜测sql注入&#xff0c;进行测试时发现空格、or、#、--、and等进行了过滤&#xff0c;目前基本可以确定注入点在这个地…

缺人!需求暴涨超300%!年薪超50万元!这一风口,带来大机遇

目前&#xff0c;秋季招聘快来了&#xff0c;随着人工智能应用的爆发&#xff0c;生成式人工智能的招聘市场也十分火爆。 在一家大型人工智能软件公司&#xff0c;团队负责人告诉记者&#xff0c;团队主要做基于大模型的办公协作类软件的开发&#xff0c;近期正在升级一款面向…

macOS Ventura 13.6.9 (22G830) Boot ISO 原版可引导镜像下载

macOS Ventura 13.6.9 (22G830) Boot ISO 原版可引导镜像下载 2024 年 8 月 8 日凌晨&#xff0c;macOS Sonoma 14.6.1 发布&#xff0c;本更新包含了重要的错误修复&#xff0c;并解决了导致高级数据保护无法启用或停用的问题。同时带来了 macOS Ventura 13.6.9 安全更新。 …

LVS(Linux virual server)详解

目录 一、LVS&#xff08;Linux virual server&#xff09;是什么&#xff1f; 二、集群和分布式简介 2.1、集群Cluster 2.2、分布式 2.3、集群和分布式 三、LVS运行原理 3.1、LVS基本概念 3.2、LVS集群的类型 3.2.1 nat模式 3.2.2 DR模式 3.2.3、LVS工作模式总结 …

IntelliJ IDEA 2024.2 发布:Spring Data JPA即时查询、自动补全cron表达式

今早看到&#xff0c;IntelliJ IDEA 2024.2 发布的邮件提示&#xff0c;看了一眼这个版本更新的新特性真的太适合我了&#xff01;也许这些能力对关注DD的小伙伴也有帮助&#xff0c;所以搞篇博客介绍和推荐一下。下面就来一起看看这个版本中推出的几个强大新特性。 Spring Da…

解密 Coretime:Polkadot 区块链资源分配的新革命

作者&#xff1a;PaperMoon Kaichao 高峰期打车&#xff0c;小编往往需要承受溢价车费&#xff0c;甚至还要不停加上小费&#xff0c;才可能在“前方排队 300人”的恐怖等待中获得优先打车的机会。但实际上&#xff0c;只要走出了拥挤路段&#xff0c;即使是高峰期&#xff0c…

Python装饰器之@property使用详解

概要 在Python中&#xff0c;property装饰器是一种强大且优雅的工具&#xff0c;用于定义属性方法&#xff0c;使得类的属性访问更加直观和安全。property装饰器可以让方法像属性一样被访问&#xff0c;从而在不改变接口的情况下对类的属性访问进行控制。本文将详细介绍proper…

VMware虚拟机和Docker的备份与恢复

目录 1. VMware虚拟机的快照备份 1.1 VMware本机的快照备份 1.2 VMware快照备份到另一电脑 2. Docker知识点 2.1 Docker镜像和容器的关系 2.2 Docker的存储卷 2.3 Docker命令简介 2.4 删除Anylink镜像 3. Docker备份和恢复 3.1 确定要回滚的容器和版本 3.2 备份当前…

UE开发中的设计模式(二) —— 中介者模式

上一篇文章介绍了观察者模式如何降低观察者和目标之间的耦合&#xff0c;并通过一个实例具体实现了观察者模式&#xff0c;本篇文章从上篇文章的实例继续&#xff0c;介绍中介者模式是如何带来对象间进一步的松耦合。 文章目录 问题提出概述问题解决总结优点缺点模式应用 参考资…

Powershell 禁用系统更新

创建一个关闭系统更新脚本 脚本系统兼容10,11,2012,206,2019,2022,2025powershell-install-stop-System-update.ps1 <# Powershell Install stop System update +++++++++++++++++++++++++++++++++++++++++++++++++++++ + _____ _____ _ …

【竞技宝】奥运会:法国国奥VS西班牙国奥

北京时间8月10日法国国奥在巴黎奥运会男足决赛中跟西班牙国奥狭路相逢&#xff0c;这场比赛对于主帅亨利来说&#xff0c;有着极为特殊的意义。因为&#xff0c;亨利将带领法国国奥队冲击他执教生涯首枚奥运会金牌。法国足协邀请亨利出任国奥队主帅&#xff0c;就是希望他能带领…

Mac 连接 Synology NAS【Finder】

对于 Mac 用户&#xff0c;建议使用 Finder 或 Cyberduck 通过WebDAV连接到Synology NAS 在上一篇文章中介绍了如何使用【Cyberduck 】连接到Synology NAS 这一篇文章介绍【Finder】连接到Synology NAS 相关文章&#xff1a; 注重任如何使用 Synology NAS 的套件或其他软件…

纸质文物的数字化革命:RFID技术的应用与影响

在这个数字化的时代&#xff0c;我们见证了技术的革新如何将历史重新点燃。纸质文物&#xff0c;这些人类文明的宝贵篇章&#xff0c;正经历一场由RFID技术引领的革命。 数字化浪潮不仅改变了我们的生活&#xff0c;也重塑了我们保护和传承历史的方式。纸质文物的数字化管理&am…

代码随想录训练营 Day24打卡 回溯算法part03 93. 复原IP地址 78. 子集 90. 子集II

代码随想录训练营 Day24打卡 回溯算法part03 一、 力扣93. 复原IP地址 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 ‘.’ 分隔。 例如&#xff1a;“0.1.2.201” 和 “192.168.1…

扩展【从0制作自己的ros导航小车】C++_ROS_QT5联合编译,简单界面为ROS开发增添交互

从0制作自己的ros导航小车 前言一、环境搭建二、联合编译三、测试 前言 前面已经实现了导航功能&#xff0c;对于之后的一些开发&#xff0c;有交互能力是比较重要的&#xff0c;比如小车上连接一块屏幕&#xff0c;通过屏幕来选择模式&#xff0c;可视化等等。QT是不错的选择…

2024年云计算企业CRM应用与选型研究报告

数字化时代&#xff0c;所有行业都在经历着数字化转型带来的效率革命。在业务流程、协同办公、数据收集和利用、决策方式等诸多方面&#xff0c;在数字化转型的加持下&#xff0c;各行各业的企业都会经历从低效到高效、从无序杂乱到标准化流程和数据驱动决策的成长蜕变。 在IC…