c语言那些有趣的事 -- 猜数字游戏

📕博主介绍:目前大一正在学习c语言,数据结构,计算机网络。

c语言学习,是为了更好的学习其他的编程语言,C语言是母体语言,是人机交互接近底层的桥梁。

本章用循环去写一些题目。

让我们开启c语言学习之旅吧!

目录

一.前言

二.打印菜单

三.生成随机数

四.猜数字

五.总结


一.前言

        经过前面一系列的学习,我们对循环分支,有了一定的了解。我们能不能把之前学过的东西很好的串联起来呢?用之前学过的东西来写一个猜数字游戏,写完之后你会发现非常有成就感,让我们更加有动力有信息的学下去。

        首先写这个东西之前我们要对他进行一些分析,需要哪些功能呢?大致可以分为这几个模块,打印菜单,生成一个数字,根据用户输入的信息进行判断并且反馈给用户。

二.打印菜单

        在玩游戏之前,用户会看菜单进行选择。在这个游戏中可以给用户两种选择:1.玩游戏,2.退出游戏。通过分析,写出了这样一个代码。

这个逻辑是实现了,可是程序会有一些缺陷,只会进行一次判断,当玩了一把不过瘾怎么办?应该对程序进行一些优化,把这个过程循环起来。

        这个时候程序就可以进行多次选择判断了, 我认为在这种场景下用do while循环会比较合适,在任何情况下都会执行一次程序,当我们输入0的时候循环条件不成立,就终止循环退出游戏。

 到了这一步这个程序的基本框架就已经写出来了,接下来就把程序的具体功能实现出来。

三.生成随机数

  生成一个随机数是这个程序的灵魂,也是最难的地方。   

        c语言有一个函数rand可以生成一个随机数,他的头文件是<stdlib.h>。rand函数要和srand配合使用,srand是一个初始化随机数生成器。如果想要正确的使用srand就要给srand传递一个变化的值,计算机上的时间是时刻发生变化的。

代码如下

int ret=rand();
srand((unsigned int)time(NULL));

注:time函数可以返回一个时间戳,time函数的头文件是<time.h>

 这样随机生成一个数字的问题就解决了,但是为了让游戏更加好玩需要限制范围,生成一个100以内的数字,任何数%100的结果都会在100以内。

代码如下

int ret=rand()%100;

关于随机生成一个数字的知识就学这么多,以我们现在的知识储备也很难学好,后期再慢慢来。

四.猜数字

        当生成了一个随机数之后就要进入猜数字环境了,在这里需要封装一个game函数,game函数的主要功能是更具用户输入的值进行判断。

比如说:a>猜大了:提醒猜大了,继续猜。

              b>猜小了:提醒猜小了,继续猜。

              c>猜对了:恭喜你,猜对了,游戏结束。

代码如下:

 注 :会进行重复的判断和输入,直到猜对执行break退出程序。

效果如下:

 整个程序的代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{printf("********************************\n");printf("************1.paly**************\n");printf("************0.exit**************\n");printf("********************************\n");
}
void game()
{int ret = rand()%100;int guess = 0;while (1){printf("请输入你要猜的数字");scanf("%d", &guess);if (guess > ret){printf("猜大了\n");}else if (guess < ret){printf("猜小了\n");}else{printf("恭喜你,猜对了\n");break;}}
}
int main()
{   int input = 0;srand((unsigned int)time(NULL));do{menu();printf("请输入>:");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("输入错误\n");break;}} while (input);return 0;
}

五.总结

        突然发现我们已经可以写出一个70行左右代码的程序了,这是一种成长。相信读者从文章中,可以感受到我们是需要什么写什么。有个术语专门描述这种思路,“TDD”测试驱动开发,根据需要,敲出代码进行测试,这个过程就是在驱动我们进行开发。

   

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

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

相关文章

python实现猜数字游戏

欢迎光临我的blog&#xff01;&#xff01;&#xff01;下面我将用python实现猜数字游戏。 用python实现猜数字游戏可以加深python初学者循环结构的理解和运用。 猜数字游戏规则如下&#xff1a; 电脑程序随机生成一个数字&#xff0c;作为猜数字游戏的最终答案&#xff0c;…

11行代码教你写一个猜数字游戏,妈妈再也不怕我无聊了

每次学完后总是可能忘掉或者一时记不起来所要用的东西&#xff0c;在网上找总是找不到自己要用的东西。或者给别人解释时太过麻烦&#xff0c;所以干脆发到csdn公开&#xff0c;一些好的文章或者程序早已年代久远或者不适用于现在的这个版本或许有更好的编写方法。 有时会写一些…

ChatGPT+Midjourney实现儿童绘本故事及其插图(数字1~10的故事)

团队模型、论文、博文、直播合集&#xff0c;点击此处浏览 一、背景 近期AI对话技术与AI绘画技术突飞猛进。其中1.&#xff09;AI对话技术是指用于模拟人类语言交流的人工智能技术。它可以让机器通过自然语言文本或语音与人类进行交流&#xff0c;并能理解人类的话语内容并做出…

服务异常:本地计算机上的服务启动后又停止。某些服务在未由其他服务或程序使用时将自动停止

1、安装服务成功之后启动服务报错&#xff0c;如下 2、主要问题还是代码报错&#xff0c;可以进入进入计算机管理器&#xff0c;选择&#xff1a;诊断-事件查看器-windows日志-应用程序&#xff0c;选择错误消息查看报错日志&#xff0c;如下 3、查看日志分析报错原因&#x…

解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止【后台运行程序】

转载自&#xff1a;https://www.cnblogs.com/bohaoist/p/4965103.html 问题描述&#xff1a;当SSH远程连接到服务器上&#xff0c;然后运行一个服务 ./catalina.sh start&#xff0c;然后把终端开闭&#xff08;切断SSH连接&#xff09;之后&#xff0c;发现该服务中断&#xf…

ChatGPT大封号,注册功能关闭!亚洲成重灾区!

来源&#xff1a;量子位&#xff08;ID:QbitAI &#xff09; 作者&#xff1a;明敏 萧箫 “不要登录ChatGPT&#xff01;” “暂时远离人工智能和ChatGPT概念板块高位股&#xff01;” 就在这两天&#xff0c;一些关于ChatGPT的疾呼突然在各种社交平台和群聊刷屏了。 而看到这…

突发 ChatGPT Plus停售?

现在&#xff0c;ChatGPT已不支持Plus付费了。 △ChatGPT截图 原因很简单&#xff1a;High demand。需求量太大&#xff0c;以至于OpenAI不得不暂停Plus的销售。 之后何时开放也没有明说。 前几天ChatGPT就因出现大规模封号引发热议&#xff0c;现在竟正儿八经地关闭了Plus…

突发!ChatGPT Plus停售!

Datawhale分享 最新&#xff1a;ChatGPT&#xff0c;来源&#xff1a;量子位 现在&#xff0c;ChatGPT已不支持Plus付费了。 △ChatGPT截图 需求量太大&#xff0c;地球上没有足够算力了&#xff1f; 原因很简单&#xff1a;High demand。需求量太大&#xff0c;以至于OpenAI不…

暂停更新,ChatGPT还能不能玩了

今天凌晨&#xff0c;一位网名anton的用户发推称&#xff1a;对GPT的需求如此之高&#xff0c;以至于现在新用户都无法升级到高级版了&#xff01; 注意&#xff1a;官网只是说暂停升级&#xff0c;不是永久停售Plus&#xff01; 一时间话题的焦点就引发到了“算力供应紧张”…

免费体验比ChatGPT更强大的AutoGPT

如果说chatgpt是汽车的话&#xff0c;那AutoGPT就是飞机 简单点说就是比chatGPT更进一步&#xff0c;AI自己上网、自己使用第三方工具、自己思考、自己操作你的电脑。执行设定的目标&#xff0c;直到完成。 不到3分钟搞定一个你想要的网站&#xff01; Auto GPT与ChatGPT对比…

对抗 ChatGPT,免费体验 Claude

对抗 ChatGPT&#xff0c;免费体验 Claude Claude 是 Anthropic 构建的大型语言模型&#xff08;LLM&#xff09;&#xff0c;对标ChatGPT。 Anthropic 创始团队多是前openai研究员和工程师&#xff0c;Claude 的特点是能够检测和回避ChatGPT的潜在陷阱&#xff0c;如逻辑错误…

都别吹牛逼了,2个英语指令简单评测便知ChatGPT、博弈Ai、文心一言、通义千问、讯飞星火真实水平

一、博弈Ai&#xff1a;GPT3.5版 演示&#xff1a;点此进入 1、充当英语发言助手 评分&#xff1a;10分 总结&#xff1a;完整满足了指令需求 2、充当英汉互译器 评分&#xff1a;8分 总结&#xff1a;基本满足了我的指令需求。但是有点啰嗦&#xff0c;扣2分 二、ChatGP…

博弈Ai官网ChatGPT能力真实测评

链接&#xff1a;点此进入&#xff08;基于ChatGPT4和3.5研发的智能聊天机器人国产镜像&#xff09; 一&#xff0c;博弈Ai的UI设计样式 1、博弈Ai&#xff08;ChatGPT&#xff09;白天模式 2、博弈Ai&#xff08;ChatGPT&#xff09;黑天模式 3、博弈Ai&#xff08;ChatGPT&a…

OpenAI Java SDK——chatgpt-java更新支持GPT-3.5-Turbo,支持语音转文字,语音翻译。

简介 chatgpt-java是一个OpenAI的Java版SDK&#xff0c;支持开箱即用。目前以支持官网全部Api。支持最新版本GPT-3.5-Turbo模型以及whisper-1模型。增加chat聊天对话以及语音文件转文字&#xff0c;语音翻译。 开源地址&#xff1a;https://github.com/Grt1228/chatgpt-java …

ChatGPT似乎有的时候并不能搞懂Java的动态分派,你懂了吗?

目录 碎碎念 ChatGPT 中出现的问题 那么正确答案应该是什么呢&#xff1f; 分派的相关知识点总结&#xff1a; 分派是什么&#xff1f; 静态分派与动态分派&#xff1a; Java语言是静态多分派&#xff0c;动态单分派的&#xff1b; 静态分派&#xff1a;静态重载多分派…

使用java对接chatgpt(含全部代码)

使用java对接chatgpt&#xff08;含全部代码&#xff09; 因为对vscode不熟悉&#xff0c;前段界面我也是在idea里写的&#xff0c;先看一下效果图是这样&#xff0c;比较简陋 我直接上代码&#xff0c;关于chatgpt前端的html&#xff0c;对了因为这个是我用之前写的匿名群聊改…

【开源免费】ChatGPT-Java版SDK重磅更新至1.0.10版,支持Tokens计算,快来一键接入!!!

简介 ChatGPT Java版SDK开源地址&#xff1a;github.com/Grt1228/cha… &#xff0c;目前收获将近1000个star。 有bug欢迎朋友们指出&#xff0c;互相学习&#xff0c;所有咨询全部免费。 最新版&#xff1a;1.0.10 <dependency><groupId>com.unfbx</groupId&…

面向Java开发者的ChatGPT提示词工程(1)

各位Java开发者们&#xff0c;欢迎来到万猫学社&#xff01;在这里&#xff0c;我将和大家分享ChatGPT提示词工程的系列文章&#xff0c;希望能够和大家一起学习和探讨提示词的最佳实践。 虽然互联网上已经有很多有关提示词的材料&#xff0c;比如那些“每个人都必须知道的30个…

JAVA 集成 chatGPT

1.文档地址&#xff1a; https://platform.openai.com/docs/introduction 下载demo&#xff1a;2. pom集成包 <dependency><groupId>com.theokanning.openai-gpt3-java</groupId><artifactId>client</artifactId><version>0.9.0</vers…

2023ChatGPT整理回答的Java高级工程师面试题

本文整理了一些 ChatGPT 回答的 java 面试题,希望能够帮助到更多的人! 死锁与活锁的区别,死锁与饥饿的区别? 死锁和活锁都是多线程并发编程中的问题,它们的区别主要在于线程是否能够继续执行。 死锁指的是两个或以上进程因竞争资源而造成的一种互相等待的现象。当多个线…