c语言编程 显示动物,C语言编程 猜动物
猜动物:假设你是一个动物,程序问问题试图猜出你是哪种动物。如果程序的猜测正确,就开始另一轮游戏。如果程序不能断定你是哪种动物,你就提供一些信息给程序以使下次再玩游戏时,程序会聪明一点儿。
举例:假设你现在是一只浣熊(raccoon)。游戏开始***** 猜动物游戏 *****程序: 请在心里想好一种动物,让我来猜一猜你是哺乳动物吗?' 用户:y程序:你比猫大吗?用户:y程序:我猜是袋鼠,我猜的对吗用户:Y程序:我猜对了!程序:继续玩吗?用户:Y(再完一次)程序:你是哺乳动物吗?' 用户:Y程序:你比猫大吗?用户:Y程序:我猜是袋鼠,我猜的对吗用户:N程序:我认输了,你是什么?用户:浣熊程序:请键入一个问题,便得通过此问题可以将袋鼠 和浣熊 区分开.用户:你有大口袋吗?程序:对于浣熊 你有大口袋吗?(Y/N)用户:N程序:噢,我明白了程序:退出游戏吗? ……
#include
#include
#include
#define N 100
typedef struct BitNode
{ char data[N];
struct BitNode *lchild,*rchild;
}BNode,*BTree;
int m=sizeof(BNode);
int inquire(char query[]);
BTree Begin_tree();
void ask_and_move(BTree &root_ptr);
int learn(BTree &leaf_ptr);
void ask_and_move(BTree &root_ptr)
{ if(root_ptr)
{ ask_and_move(root_ptr->lchild);
ask_and_move(root_ptr->rchild);
} }
int main()
{ printf("开始\n");
printf("你先假设你是一种动物,开始猜\n");
printf("想好一种动物,按任意键开始!\n");
getchar();
Begin_tree();
return 0;
}
BTree Begin_tree()
{ BTree leaf_ptr;
BNode *root_ptr;
BTree child_ptr;
root_ptr=(BTree)malloc(m);
strcpy(root_ptr->data,"你是哺乳动物么?\n");
printf("你是哺乳动物么?\n");
if(getchar()=='N') learn(leaf_ptr);
else
{
child_ptr=(BTree)malloc(m);
strcpy(child_ptr->data,"你比猫大吗?\n");
printf("你比猫大吗?\n");
if(getchar()=='N') learn(leaf_ptr);
else
{ root_ptr->lchild=child_ptr;
child_ptr->lchild=(BTree)malloc(m);
strcpy(child_ptr->data,"你是袋鼠,我猜的对么?\n");
if(getchar()=='N') learn(leaf_ptr);
child_ptr->lchild=child_ptr->rchild=NULL;
return root_ptr;
} } }
int inquire(char query[])
{ BTree leaf_ptr;
char ans;
ans=getchar();
if(getchar()=='Y') ask_and_move(leaf_ptr);
else learn(leaf_ptr);
return 0;
}
int learn(BTree &leaf_ptr)
{ char correct_animal[N];
char new_question[N];
char c[N];
printf("我放弃了,你是什么?\n");
gets(correct_animal);
correct_animal[N]=getchar();
printf("请输入一个问题,用以区分猜测。\n");
printf("你的问题:\n");
gets(new_question);
new_question[N]=getchar();
leaf_ptr=(BTree)malloc(m);
strcpy(leaf_ptr->data,new_question);
printf("对于%c, Y or N ?\n",correct_animal);
gets(c);
inquire(c);
printf("再来一次?\n");
if(getchar()=='Y') main();
else return 0;
return 0;
}
这个代码有误怎么改
c语言编程 显示动物,C语言编程 猜动物相关推荐
- c语言 编程显示图案*,C语言中怎么编程在计算机屏幕上显示如下图案?
满意答案 aggaskd2a 2013.07.14 采纳率:41% 等级:11 已帮助:5656人 #include int main() { int i, j; for(i = 0; i &l ...
- c语言不显示密码,C语言如何隐藏输入密码
如何在C语言程序框里面实现像输入QQ密码,输进去密码显示出来的就是*号,然后按退格键可以删除*号. 首先我们要知道如何输入字符串,我们经常使用scanf这个函数来输入,但是这是对字符串的操作,而get ...
- c语言年历显示思路,c语言程序设计年历显示要素.doc
南京航空航天大学金城学院 设计题目 年历显示 学生姓名 学 号 专业班级 指导教师 2016 年 月 日 目 录 一.课程设计问题描述1 1.课程设计题目1 2.设计任务要求1 二.总体设计1 1.总 ...
- C语言依次显示图片,c语言能显示图片吗
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* Svga64k.bgi 测试文件 */ #include "graphics.h" #include "Svga256 ...
- JS数组 编程练习 使用Javascript语言,把以下数组 在页面显示如下图所示的图案
编程练习 使用Javascript语言,把以下数组 var arr = ['*','##',"***","&&","****&quo ...
- C语言编程题显示日历,C语言日历问题
已结贴√ 问题点数:10 回复次数:3 C语言日历问题 我是C语言初学者,在论坛上看到一篇日历程序(我稍微改动了下). 现在显示的月份是1,2...12,怎样能变成显示是Jan,Feb...这样的. ...
- c语言图形方式初始化,c语言图形方式下的编程.doc
c语言图形方式下的编程.doc C语言图形方式下的编程 学习目标 ·了解PC显示系统的结构 ·C语言图形初始化的一般方法 ·C语言常用的图形处理函数 显示系统简介 PC机显示系统一般是由显示器和显示卡 ...
- 自学编程是从python语言还是c语言开始-非计算机专业大学生想自学编程应该学C语言还是学Python?...
之前总结的文章,分享过来,希望对你有帮助.windliang:到底学哪一门编程语言zhuanlan.zhihu.com 发展进程 学哪一门编程语言,我们不妨先梳理一下语言的发展过程. 机器语言 计算 ...
- status c语言_C/C++编程笔记:C语言编程风格个人总结,初学小白可借鉴
总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的.首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的. 一件事情,做成和做好中间可能隔了 ...
最新文章
- zipfile java 解压速率,使用java.util.ZipFile在同一层次中解压缩zipfile
- Win7 + VS2015 + Python3.6编译
- jQuery中实现全选功能时使用attr( )改变checked值只能生效一次的问题
- phpstudy mysql创建表_MySQL_Mysql入门基础 数据库创建篇,1.创建数据表---基础(高手跳 - phpStudy...
- 海外精致办公名片展示样机|智能贴图 Mockup名片模板
- mysql存储过程局部变量使用_MySQL存储过程使用输出变量
- ETL工具学习以及安装部署
- bc显示小数点前的0
- c# socket接收字符串_php 的 socket简单原理及实现
- 蓝桥杯题目 统计回文子串
- 魔兽单机80mysql创建账号_本站魔兽世界单机版如何注册账号及局域网架设 | 游戏海湾...
- spyder python下载_Spyder python下载
- playm3u8插件android,playm3u8播放器
- mysql中查询编辑器_万能数据库查看器|Universal SQL Editor(万能SQL编辑器)下载 v1.8 官方版 - 比克尔下载...
- python演示,用经验分布逼近总体精确分布
- 【Unity3D日常开发】应粉丝邀约,写一篇单例模式在Unity的实际应用,记得一键三连哦
- JNI 手动释放内存(避免内存泄露)
- 30行python代码实现微信自动陪女盆友聊天(itchat-uos + 无限制调用)
- 初级会计机考模拟系统计算机怎么用,2020初级会计《机考操作与应试技巧》之机考操作篇...
- java Date与 double 互转