你们好呀!这里是@小梁coding~欢迎你们来到我的博客,这是我的第一篇文章,很高兴能够与大家在CSDN上进行学术交流(有问题欢迎在我的评论区下留言,嘿嘿),要想掌握一样技能,就一定要动手动脑实践,并要求我们要将输入输  出相结合,好了话不多数,开始我们的游戏吧!

游戏简介:该游戏可以由程序随机产生四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。当A为4时,即四个数字都猜对即为挑战成功。

输入输出要求:玩家一次性输入四个(0~9)不重复的数字,输出A,B个数判断的结果,若成功则提前输出游戏成功,若八次机会用完还未猜出,则游戏失败,并显示正确答。

(利用数组解题) 我们所需要思考的问题是:1.如何让系统产生随机数2.如何实现一次性输入四个数并将其分开存入数组3.如何实现A.B的计数

1.利用srand()函数及rand()函数实现四个随机数的产生time(NULL)

{srand(time(NULL));int i,x[4]/*x为随机数*/;while(1){for(i=0; i<4; i++)x[i]=rand()%10;   /*当while括号里为真时取随机数0~9中的一个赋给x*/if((x[0]!=x[1])&&(x[0]!=x[2])&&(x[0]!=x[3])&&(x[1]!=x[2])
&&(x[1]!=x[3])&&(x[2]!=x[3]))      /*不能重复,四个数字都要不同*/break;}

2.利用取余%实现一次性输入四个0~9的数并将四个数字分开存入数组

 scanf("%d",&num);for(i=0;i<4;i++){guess[i]=num%10;num=num/10;}

是不是发现解决这个问题很简单呢!有许多同学的输入方式都不是一次性输入四个数(但是题目要求我们一次输入4个数),有的打一个数字按一下空格,接着再打一个数字按一下空格最后回车才对AB进行判断,还有的要打一个数字按一次回车,按5次后才进行AB判断

3.利用for循环语句if条件判断语句实现八次循环输入判断与AB计数

  A=0;
for(i=0; i<4; i++){if(guess[i]==x[i])A++; //数字正确且位置正确,A加1}B=0;for(i=0; i<4; i++)for(j=0; j<4; j++){if((guess[j]==x[i])&&(i!=j)) //数字正确而位置不正确,B加1B++;}

4.源代码如下

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>int main()
{srand(time(NULL));int i,h,j/*控制输入循环*/,x[4]/*x为随机数*/,guess[4],A,B,num;while(1){for(i=0; i<4; i++)x[i]=rand()%10;/*当while括号里为真时取随机数0~9中的一个赋给x*/if((x[0]!=x[1])&&(x[0]!=x[2])&&(x[0]!=x[3])&&(x[1]!=x[2])&&(x[1]!=x[3])&&(x[2]!=x[3]))break;}
printf("正确答案为:%d%d%d%d\n",x[3],x[2],x[1],x[0]);printf("游戏规则:\n\n该游戏可以由程序随机产生四个不重复的数字\n要求一次性输入这四个数\n玩家可通过提示A.B提示进行八次猜测\nA表示位置正确且数字正确\nB表示数字正确而位置不正确\n");printf("只要A为4个则游戏挑战成功\n违反游戏规则游戏提前结束\n");printf("祝你顺利!!游戏开始!!\n\n");for(h=0; h<8; h++){printf("第%d次输入(每输入一次回车):\n",h+1);scanf("%d",&num);for(i=0;i<4;i++){guess[i]=num%10;num=num/10;}if((guess[0]==guess[1])&&(guess[0]==guess[2])&&(guess[0]==guess[3])&&(guess[1]==guess[2])&&(guess[1]==guess[3])&&(guess[2]==guess[3])){h--;break;}A=0;for(i=0; i<4; i++){if(guess[i]==x[i])A++;}B=0;for(i=0; i<4; i++)for(j=0; j<4; j++){if((guess[j]==x[i])&&(i!=j))B++;}printf("%dA%dB\n",A,B);if(A==4){printf("恭喜您!游戏成功!!\ngame over\n");h--;break;}}if(h==8){printf("八次机会已用完,游戏失败\ngame over\n");printf("正确答案为:%d%d%d%d\n",x[3],x[2],x[1],x[0]);}
printf("违反游戏规则,游戏结束!\n");return 0;
}

5.运行结果如下

成功

失败

重复提前结束程序(若有更好的解决方法评论区留言)

解题方式如上,可供参考,有很好方法,欢迎评论区留言,这里是@小梁coding,一个励志要将输入与输出相结合的成长型学生!!

C语言课题1:猜数字游戏【从基础开始手把手教你】相关推荐

  1. 1到100猜数字游戏规则c语言,[C语言课程设计猜数字游戏1.doc

    [C语言课程设计猜数字游戏1 课 程 设 计 报 告 课程名称 C语言程序设计报告 课题名称 猜数字游戏 专 业 电气工程及其自动化 班 级 1104 学 号 33 姓 名 张腾 指导教师 黄晓宇 丁 ...

  2. 猜数字小c语言游戏课程任务书,C语言课程设计猜数字游戏姚成.doc

    课 程 设 计 报 告 课程名称 C语言程序设计报告 课题名称 猜数字游戏 专 业 电气工程及其自动化 班 级 1104 学 号 23 姓 名 姚成 指导教师 黄晓宇 丁敬忠 谭小兰 2012年 6月 ...

  3. C语言习题:猜数字游戏(C语言随机数)

    C语言习题:猜数字游戏(C语言随机数) 需要了解C语言随机数的生成方法: 在C语言中比较常用的随机函数是 rand 函数,它可以随机的产生 0 ~ rand_max 的随机数,定义类型不同最大值也不同 ...

  4. c语言课程设计猜数字游戏报告,C语言课程设计-猜数字游戏报告.doc

    C语言课程设计-猜数字游戏报告 摘要 该软件在Windows系统上为玩家提供猜数字游戏的基本功能,游戏用户可以选择开始游.排行榜查看.帮助等主要功能.当用户选择开始游戏时,系统会提示用户排行榜上猜数字 ...

  5. c语言课程设计猜数字游戏报告,C语言课程设计猜数字游戏报告

    C语言课程设计猜数字游戏报告 C 语言课程设计----猜数字1摘 要该 软 件 在 Windows 系 统 上 为 玩 家 提 供 猜 数 字 游 戏的 基 本 功 能 , 游 戏 用 户 可 以 选 ...

  6. c语言实现通讯录_C语言实现双人猜数字游戏

    点击上方"学士科技",选择"设为星标" 资讯.技术干货第一时间送达! C语言合集(基础.进阶.高级)通通有,点我点我      C语言实例 01.C语言编写简单 ...

  7. 如何用c语言实现【猜数字游戏】

    万里寻山历百艰而, 一朝见井纵九死以何辞. 不吃学习的苦,  就要吃生活的苦. 目录 ⌚一.前言 ⏰二.游戏逻辑 ⏳三.思维导图 ☎️四.游戏过程 ✒️ 五.代码分析 ⛳1.生成随机数的方法​ ⛳2. ...

  8. c语言编程题猜数字游戏6题,c语言编程—猜数字游戏.doc

    c语言编程-猜数字游戏 计算机实习报告 面向过程编程 用C语言求解实际问题 一.问题描述 游戏类第15个任务--猜数字游戏 计算机从0-9这10个数字中任意选择n个不重复数字(n≤10)组成一个5位数 ...

  9. c语言编写一个猜数字游戏编写

    1.C语言实现猜数字游戏: #define _CRT_SECURE_NO_WARNINGS//猜数字游戏: // 1.由电脑自动生成一个随机数字 // 2.猜数字#include <stdio. ...

  10. C语言写出猜数字游戏的代码

    猜数字游戏,即电脑生成随机数,根据用户输入猜大猜小最终实现猜对数字 思想:电脑生成随机数跟用户输入的那个数进行比较,若大了或者小了继续猜,这里可以写个死循环知道猜对才可以跳出来 代码如下所示: #in ...

最新文章

  1. 少量数据训练语音识别的思路
  2. linux基础-延时命令:sleep
  3. Linux(Centos7)下redis5安装、部署、开机自启
  4. 开发日记-20190702 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 8
  5. 科大星云诗社动态20210407
  6. Android studio | From Zero To One ——初级控件(屏幕显示)
  7. VBScript学习笔记 - 数组
  8. 实现CStack类遇到的问题
  9. UI(1)---2018 UI 设计趋势
  10. 20190226-SecureCRT连接linux显示中文乱码
  11. 计算机网络之JSONP跨域
  12. makefile:425: *** 遗漏分隔符
  13. 《游戏设计艺术(第二版)》第十二章个人学习
  14. STM8L051F3_0d_基础介绍
  15. asp.net开源资料——国内.NET论坛源代码
  16. 招商银行笔试题之修塔游戏
  17. 计算机桌面的理解,电脑桌面的基础知识教程,教你认识电脑桌面
  18. java查看jar包源代码_如何查看 JAR 包的源代码
  19. SpringBoot小程序推送信息
  20. 数学--计算几何--三角定位原理和升级

热门文章

  1. 用Python破解WiFi密码,太刺激了!
  2. 服务中读取当前用户注册表HKEY_CURRENT_USER
  3. 互联网业务实战(一)--今日头条文章发布实现
  4. linux安装 cuda、cdunn、numpy、scipy、theano、pylearn2、scikit-neuralnetwork
  5. echarts折线图 - 区域图 -如何设置填充色
  6. 【转帖】财务尽职调查资料收集总结
  7. 手机屏幕画面实时直播
  8. 『强烈推荐2个网站』这才是Win10官方原版正确下载姿势
  9. 计算机内存满了 可是硬盘空的,为什么计算机内存不足
  10. 《Netty权威指南》笔记 —— 第二十、二十一、二十二, 二十三章