猜动物:假设你是一个动物,程序问问题试图猜出你是哪种动物。如果程序的猜测正确,就开始另一轮游戏。如果程序不能断定你是哪种动物,你就提供一些信息给程序以使下次再玩游戏时,程序会聪明一点儿。

举例:假设你现在是一只浣熊(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语言编程 猜动物相关推荐

  1. c语言 编程显示图案*,C语言中怎么编程在计算机屏幕上显示如下图案?

    满意答案 aggaskd2a 2013.07.14 采纳率:41%    等级:11 已帮助:5656人 #include int main() { int i, j; for(i = 0; i &l ...

  2. c语言不显示密码,C语言如何隐藏输入密码

    如何在C语言程序框里面实现像输入QQ密码,输进去密码显示出来的就是*号,然后按退格键可以删除*号. 首先我们要知道如何输入字符串,我们经常使用scanf这个函数来输入,但是这是对字符串的操作,而get ...

  3. c语言年历显示思路,c语言程序设计年历显示要素.doc

    南京航空航天大学金城学院 设计题目 年历显示 学生姓名 学 号 专业班级 指导教师 2016 年 月 日 目 录 一.课程设计问题描述1 1.课程设计题目1 2.设计任务要求1 二.总体设计1 1.总 ...

  4. C语言依次显示图片,c语言能显示图片吗

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* Svga64k.bgi 测试文件 */ #include "graphics.h" #include "Svga256 ...

  5. JS数组 编程练习 使用Javascript语言,把以下数组 在页面显示如下图所示的图案

    编程练习 使用Javascript语言,把以下数组 var  arr = ['*','##',"***","&&","****&quo ...

  6. C语言编程题显示日历,C语言日历问题

    已结贴√ 问题点数:10 回复次数:3 C语言日历问题 我是C语言初学者,在论坛上看到一篇日历程序(我稍微改动了下). 现在显示的月份是1,2...12,怎样能变成显示是Jan,Feb...这样的. ...

  7. c语言图形方式初始化,c语言图形方式下的编程.doc

    c语言图形方式下的编程.doc C语言图形方式下的编程 学习目标 ·了解PC显示系统的结构 ·C语言图形初始化的一般方法 ·C语言常用的图形处理函数 显示系统简介 PC机显示系统一般是由显示器和显示卡 ...

  8. 自学编程是从python语言还是c语言开始-非计算机专业大学生想自学编程应该学C语言还是学Python?...

    之前总结的文章,分享过来,希望对你有帮助.windliang:到底学哪一门编程语言​zhuanlan.zhihu.com 发展进程 学哪一门编程语言,我们不妨先梳理一下语言的发展过程. 机器语言 计算 ...

  9. status c语言_C/C++编程笔记:C语言编程风格个人总结,初学小白可借鉴

    总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的.首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的. 一件事情,做成和做好中间可能隔了 ...

最新文章

  1. zipfile java 解压速率,使用java.util.ZipFile在同一层次中解压缩zipfile
  2. Win7 + VS2015 + Python3.6编译
  3. jQuery中实现全选功能时使用attr( )改变checked值只能生效一次的问题
  4. phpstudy mysql创建表_MySQL_Mysql入门基础 数据库创建篇,1.创建数据表---基础(高手跳 - phpStudy...
  5. 海外精致办公名片展示样机|智能贴图 Mockup名片模板
  6. mysql存储过程局部变量使用_MySQL存储过程使用输出变量
  7. ETL工具学习以及安装部署
  8. bc显示小数点前的0
  9. c# socket接收字符串_php 的 socket简单原理及实现
  10. 蓝桥杯题目 统计回文子串
  11. 魔兽单机80mysql创建账号_本站魔兽世界单机版如何注册账号及局域网架设 | 游戏海湾...
  12. spyder python下载_Spyder python下载
  13. playm3u8插件android,playm3u8播放器
  14. mysql中查询编辑器_万能数据库查看器|Universal SQL Editor(万能SQL编辑器)下载 v1.8 官方版 - 比克尔下载...
  15. python演示,用经验分布逼近总体精确分布
  16. 【Unity3D日常开发】应粉丝邀约,写一篇单例模式在Unity的实际应用,记得一键三连哦
  17. JNI 手动释放内存(避免内存泄露)
  18. 30行python代码实现微信自动陪女盆友聊天(itchat-uos + 无限制调用)
  19. 初级会计机考模拟系统计算机怎么用,2020初级会计《机考操作与应试技巧》之机考操作篇...
  20. java Date与 double 互转

热门文章

  1. 有时候一个人的追求是刻在骨子里的。
  2. 【北亚数据恢复】通过碎片拼接技术恢复XenServer服务器磁盘中SQL Server数据库数据
  3. IOS清除APP角标
  4. 一张图看懂嵌入式系统组成
  5. 如何用jmeter压测java接口,Jmeter接口压测快速入门
  6. 川大计算机在职研究生考试,四川大学在职研究生考试科目是什么?
  7. YA-C21A型二氧化碳传感器
  8. Picasso图片下载缓存库的使用心得
  9. ios android 截屏 分享,iOS 系统自带截屏分享
  10. python导入txt时wrongformat_python 问题记录