分别使用Java和C语言实现猜数字游戏(数字随机生成)

news2024/11/24 7:54:14

目录

一、Java实现

1.内容介绍

2.思路

3.完整代码

二、C语言实现

1.思路

2.完整代码

三、总结

1.产生随机数

2.分支结构


一、Java实现

1.内容介绍

(1)在程序运行起来之后,就提醒我们输入数字,猜的数字控制在[0-100],下面是效果图:

(2)可以自己添加一些特色,比如控制猜的次数,或者每次猜错都显示一次数的范围

2.思路

(1)让电脑自己产生随机数

  • 产生随机数的写法 :程序运行一次,只需要产生一个即可
import java.util.Random;//需要包含的类包(类似C语言的头文件)
     Random random = new Random();//需要工具,其中random是自己定义的工具名
     int number =random.nextInt(100)+1;//number用来接收产生的随机数
//输入100则是控制范围为[0,100),我们再+1即是[0,100]
  • 从键盘输入猜的数
import java.util.Scanner;//包含的类包
     Scanner scanner = new Scanner(System.in);//工具,写在循环外
  • 在循环内,没猜到都需要重新输入 
System.out.print("请输入你要猜的数字:");
int input = scanner.nextInt();

(2)猜数字的三种结果:猜对、猜小和猜大,每次输入都显示其中一种

  • 利用if else分支结构,控制结果的走向 
 System.out.print("请输入你要猜的数字:");
                int input = scanner.nextInt();
                if(input<number) {                  
                    System.out.println("猜小了");
                } else if(input>number) {               
                    System.out.println("猜大了");
                } else {
                    System.out.println("恭喜你猜对了");
                    break;
                }

(3)控制次数

  • 只需要新增一个变量来控制次数即可
 int times = 6;

            while(times>0) {
                System.out.print("请输入你要猜的数字:");
                int input = scanner.nextInt();
                if(input<number) {
                    times--;
                    System.out.println("猜小了,你的次数还剩"+times);

                } else if(input>number) {
                    times--;
                    System.out.println("猜大了,你的次数还剩"+times);

                } else {
                    System.out.println("恭喜你猜对了");
                    break;
                }
            }
            if(times==0) {
                System.out.println("傻瓜,没机会了,下辈子吧");
            }

3.完整代码

import java.util.Random;
import java.util.Scanner;
public class Game {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //产生随机数
        Random random = new Random();//工具
        int number =random.nextInt(100)+1;
        //只给6次机会
        int times = 6;

            while(times>0) {
                System.out.print("请输入你要猜的数字:");
                int input = scanner.nextInt();
                if(input<number) {
                    times--;
                    System.out.println("猜小了,你的次数还剩"+times);

                } else if(input>number) {
                    times--;
                    System.out.println("猜大了,你的次数还剩"+times);

                } else {
                    System.out.println("恭喜你猜对了");
                    break;
                }
            }
         if(times==0) {
                System.out.println("傻瓜,没机会了,下辈子吧");
            }
    }
}

二、C语言实现

1.思路

(1)产生随机数

  • rand()函数产生的是伪随机数,也就是每次运行起来产生的数都一样
  • 添加时间戳:srand((unsigned int)time(NULL))则可以控制每次运行起来产生的数字都不一样
srand((unsigned int)time(NULL));
int number = rand()%100+1;
  • 需要包含的头文件
#include<time.h>//time函数
#include<stdlib.h>//rand函数

(2)分支结构

  • 同样是需要分为三种结果,猜对、猜小和猜大
while (1)
	{
		printf("请输入你要猜的数字:");
		scanf("%d", &input);
		if (input > number) {
			printf("猜大了\n");
		}
		else if (input < number) {
			printf("猜小了\n");

		}
		else {
			printf("猜对了:%d\n",input);
			break;
		}

(3)色彩添加

  • 可以设置猜游戏的次数
int count = 6;
	while (count)
	{
		printf("请输入你要猜的数字:");
		scanf("%d", &input);
		if (input > number) {
			count--;
			printf("猜大了,还剩%d次\n",count);
		
		}
		else if (input < number) {
			count--;
			printf("猜小了,还剩%d次\n",count);
			
		}
		else {
			printf("猜对了:%d\n",input);
			break;
		}
	}

  • 可以设置简易的菜单
void menu()
{
	printf("*******************\n");
	printf("****** 1.play *****\n");
	printf("****** 0.eixt *****\n");
	printf("*******************\n");
}

int input = 0;
menu();
	printf("输入你的选择:");
	scanf("%d", &input);

2.完整代码

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void menu()
{
	printf("*******************\n");
	printf("****** 1.play *****\n");
	printf("****** 0.eixt *****\n");
	printf("*******************\n");
}
int main() {

	int input = 0;
	srand((unsigned int)time(NULL));
	int number = rand() % 100 + 1;
	menu();
	printf("输入你的选择:");
	scanf("%d", &input);
	while(input){
	int count = 6;
	while (count)
	{
		printf("请输入你要猜的数字:");
		scanf("%d", &input);
		if (input > number) {
			count--;
			printf("猜大了,还剩%d次\n", count);
		}
		else if (input < number) {
			count--;
			printf("猜小了,还剩%d次\n", count);
		}
		else {
			printf("猜对了:%d\n", input);
			break;
		}
	}
}
	return 0;
}

三、总结

1.产生随机数

(1)C语言产生随机数需要两步:

  • 需要设置时间戳:srand((unsigned int)time(NULL));
  • 使用函数产生随机数:int number = rand() % 100 + 1;

(2)Java产生随机数需要两步:

  • 使用工具包: Random random = new Random();
  • 使用方法产生随机数:  int number =random.nextInt(100)+1;

2.分支结构

  • C语言与Java在实现的过程中,三种走向的写法都及其类似,所以说他们之间的思想都是差不多的。
  • 另外,可以自己多添加上一些有趣的代码,使其更加丰富

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

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

相关文章

从用户角度出发,探索低代码服务商选择本地部署模式的内在逻辑

随着越来越多的企业开始关注本地部署模式&#xff0c;很多低代码服务商也将视角转向了本地部署模式。毕竟只有将各种软件和程序部署在本地&#xff0c;才能够更好地保护企业的数据安全。但是&#xff0c;选择恰当的本地部署模式&#xff0c;对于服务商来说是一个非常复杂的过程…

8.OsgEarth 鼠标位置及LabelControl中文显示

愿你出走半生,归来仍是少年&#xff01; 在人机交互中&#xff0c;最常用的就是鼠标。获取鼠标在三维场景中的空间位置是保证交互结果正确的保障。 1.LabelControl 文本标签控件&#xff0c;可方便的添加在场景顶层。 设置编码及字体可正确的显示出中文。 setFont(osgText::re…

android studio app红叉无法编译

1.起源 今天前台小姐姐穿了一个白色的超短裙,和小姐姐聊了聊人生梦想,聊生活趣事,回到工位你马....报了一个这错误,无法运行了,明天就要打包测试了,顿时菊花一紧,急了一头汗,这你马咋回事,看了旁边的产品肥仔,迷着小眼露出了银建的笑容.开始排雷.... 意思就是说gradle初始化失…

如何使用 NFTScan NFT API 在 BNB Chain 网络上开发 Web3 应用

BNB Chain 是一条以太坊虚拟机兼容的区块链&#xff0c;是加密资产行业顶尖项目的测试和前沿探索。通过引入权益权威证明&#xff08;PoSA&#xff09;共识机制&#xff0c;BNB Chain 创建了验证一个允许节点、代币持有者、开发者和用户都能够从区块链中获益的生态系统&#xf…

Sentinel 哨兵数据 更新下载地址 2023年11月

1. 欧空局官方下载 2023年11月开始&#xff0c;原来欧空局的下载地址和应用有了变化&#xff0c;现在迁移到以下新地址下载&#xff1a; https://dataspace.copernicus.eu/ 我这边测试需要重新注册用户才能进行登录和使用&#xff0c;界面使用和之前差不多&#xff0c;具体操作…

如何在校园跑腿系统小程序中构建稳健的订单处理与分配系统?

1. 数据库设计 首先&#xff0c;设计订单数据结构。使用数据库&#xff08;例如MySQL、MongoDB等&#xff09;&#xff0c;创建订单表以存储订单相关信息&#xff0c;包括订单ID、用户信息、交付地址、订单状态等。 CREATE TABLE orders (order_id INT AUTO_INCREMENT PRIMAR…

掌握口才与演讲技巧,让你职场中脱颖而出

在职场竞争日趋激烈的今天&#xff0c;口才和演讲能力已经成为一个人成功的重要标志之一。掌握了优秀的口才与演讲技巧&#xff0c;不仅可以帮助你在工作中更好地表达自己和传达信息&#xff0c;同时也可以让你在同事和上级心中留下深刻印象&#xff0c;从而在职场中脱颖而出&a…

突发,50亿美元芯片订单被取消? | 百能云芯

11月2日消息&#xff0c;据华尔街日报&#xff0c;美国新推出的出口管制规定可能迫使AI芯片巨头英伟达取消明年数十亿美元的对华先进制程芯片订单&#xff0c;此举可能令中国科技公司无法获得关键的AI资源。 据知情人士透露&#xff0c;此前&#xff0c;英伟达今年对中国的先进…

.NET桌面程序如何设置任务栏图标右键菜单中的名称

右键任务栏中应用程序图标时会显示程序名称&#xff0c;例如&#xff1a; 这里显示的并不是程序文件名DingTalk&#xff0c;而是文件属性中详细信息选显卡下的“文件说明”。 在.NET桌面程序中&#xff0c;是通过修改程序集名称&#xff08;AssemblyTitle&#xff09;来设置…

2024年天津医科大学临床医学院专升本招生对口专业限制专科目录

2024年天津医科大学临床医学院高职升本科招生对口专业目录 药学&#xff1a; 药学 护理&#xff1a; 护理、助产 公共事业管理&#xff1a; 医药卫生大类&#xff1a;护理、助产、临床医学、口腔医学、中医学、中医骨伤、针灸推拿、蒙医学、藏医学、维医学、傣医学、哈医学…

sso简单记录

首先我们再次复习一下&#xff0c;多个系统之间为什么无法同步登录状态&#xff1f; 前端的Token无法在多个系统下共享。后端的Session无法在多个系统间共享。 关于第二点&#xff0c;我们已在 "SSO模式一" 章节中阐述&#xff0c;使用 Alone独立Redis插件 做到权限…

2023-11-02 LeetCode每日一题(环和杆)

2023-11-02每日一题 一、题目编号 2103. 环和杆二、题目链接 点击跳转到题目位置 三、题目描述 总计有 n 个环&#xff0c;环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings &#xff0c;表示这 n 个环在…

Linux下使用vscode编写Python项目

我此处是使用VScode远程连接的服务器&#xff0c;具体方法可看如下&#xff1a; 1、vscode中安装Python插件 按上面步骤安装好Python插件后&#xff0c;重启vscode&#xff1b; 2、选择Python解释器 创建Python项目结构&#xff1a; 按下F1&#xff0c;打开vscode命令栏&am…

智安网络|数据库设计与规范:构建高效可靠的数据存储系统

在信息化时代&#xff0c;数据库设计与规范是构建高效可靠的数据存储系统的关键。一个合理的数据库设计可以提高数据的存储效率、保证数据的一致性和完整性&#xff0c;提供高效的数据查询和处理能力。 一、数据库设计的基本原则 数据库范式&#xff1a;数据库设计应符合范式的…

nmap 使用方法详细介绍

nmap的使用 前言nmap 作用Nmap使用教程 nmap的基本输入&#xff1a;扫描参数&#xff1a;端口扫描&#xff1a;端口状态扫描&#xff1a;UDP扫描协议扫描 总结 Nmap的基础知识Nmap的扫描技术 Nmap的OS检测&#xff08;O&#xff09;Nmap的操作系统指纹识别技术&#xff1a; 前…

管理类联考——英语二——考点+记忆篇——小作文

文章目录 考点整体写作结构法记忆宫殿法第一句绘图记忆法 局部第一段第二段第三段 本篇思路&#xff1a;根据各方的资料&#xff0c;比如名师的资料&#xff0c;按大纲或者其他方式&#xff0c;收集/汇总考点&#xff0c;即需记忆点&#xff0c;在通过整体的记忆法&#xff0c;…

PHP 字符串常用函数

PHP 字符串常用函数 字符串属性strlen 筛选查找strposstrrposstrstrstrrchr查找方法之间区别总结 拼接&#xff0c;拆分字符串explodestrtokimplodesubstr 替换字符串str_replace 格式化字符串trimltrimrtrim 字符串属性 strlen 获取指定字符串长度 语法: strlen (字符串变…

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读)

目录 一.什么是Q、K、V 二.Mutil-Head Self-Attention Transformer大行其道&#xff0c;在众多领域取得了不可忽视的成就。如今大火的语言大模型LLM也都是基于Transformer&#xff0c;但是Transformer中的Q、K、V和多头注意力到底是什么呢&#xff1f;这里简单做个学习记录&a…

实景三维信创产品与智能硬件重磅发布 | 大势智慧2023秋季新品发布会圆满落幕

10月27日&#xff0c;大势智慧2023秋季新品发布会取得圆满成功。本次发布会以“全国产、真安全”为主题&#xff0c;重磅发布了一系列国产化软硬件产品和新型智能装备&#xff0c;用于满足实景三维全流程的安全生产和应用需求。大会同步在官方微信视频号、bilibili直播间进行线…

如何记录每天的工作日程?电脑手机通用的日程管理软件

在工作时间有限&#xff0c;但工作任务愈加繁多的现在职场中&#xff0c;要求每一个职场人士做好高效日程管理。通过高效管理日程&#xff0c;我们可以更好地组织和安排任务&#xff0c;合理分配时间和优先级&#xff0c;这有助于我们更专注地进行工作&#xff0c;减少时间的浪…