小明小强c语言20,C语言求解-小明和小强都是张老师的学生,张老师的生日是M月N日.doc...

小明和小强都是张老师的学生,张老师的生日是M月N日,

2人都知道张老师的生日是下列10组中的一天,张老师把M值告诉了小明,

把N值告诉了小强,张老师问他们知道他的生日是那一天吗?

3月4日 3月5日 3月8日

6月4日 6月7日

9月1日 9月5日

12月1日 12月2日 12月8日

小明说:如果我不知道的话,小强肯定也不知道.

小强说:本来我也不知道,但是现在我知道了.

小明说:哦,那我也知道了.

请根据以上对话推断出张老师的生日是哪一天?

提示:

1、利用如下数据结构:

enum mn{a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=12}m,n;

int mon[4]={3,6,9,12};

int day[6]={1,2,4,5,7,8};

2、利用上面的数据结构,配合如下注释,填充完整函数,得出答案。

void getValueFromMing(){}/*如果我不知道,小强肯定也不知道.*/

void getValueFromQiang(){}/*本来我不知道,现在我知道了.*/

void getValueFromMing2(){}/*那我也知道了.*/

/*

临时写了个code,有空了再做改进。

我们从这样的角度去考虑,

因为我知道的不是...

“比如小明,因为我知道的月分不是...,所以小强一定不知道”

这样通过排除法,把范围就给缩小到很小很小,最后知道答案了

*/

/*

解答过程:

小明知道月份,小强知道日子

小明说:如果我不知道的话,小强肯定也不知道

那么小明知道小强不可以单凭日期就能判断,所以小强知道的日子是没有重复的

而6.7和12.2的日子是没有重复的,所以可以排除6月和12月

3月4日 3月5日 3月8日

6月4日 6月7日

9月1日 9月5日

12月1日 12月2日 12月8日

小强说:本来我也不知道,但是现在我知道

小强听到小明说的,就知道排除了6月和12月

他之所以那么肯定,因为他知道的日子是没有重复的

3月4日 3月5日 3月8日

9月1日 9月5日

所以3.5和9.5不对,排除

小明说:哦,那我也知道了

因为小明知道月份,他这么肯定,是因为剩下的日期只有一个是月份没有重复的,就是9月份

3月4日 3月8日

9月1日

所以答案是9.1

*/

/*==============================================================================

文 件 名 : testbirthday.c

功 能 : 小明和小强通过对方的语言得出张老师的生日

作 者 : jernymy

日 期 : 2010/01/14

备 注 : 通过排除法: 因为我知道的不是...

“比如小明,因为我知道的月分不是...,所以小强一定不知道”

基于VC6.0的环境。

==============================================================================*/

#include "stdio.h"

// 1、利用如下数据结构:

enum mn

{

a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=12

}m,n;

int mon[4] = {3, 6, 9, 12};

int day[6] = {1, 2, 4, 5, 7, 8};

// 2、利用上面的数据结构,配合如下注释,填充完整函数,得出答案。

typedef enum

{

KNOW_ERROR = 0,

MING_HAVE_KNOW,

MING_MAYBE_KNOW,

MING_DONOT_KNOW,

MING_REMOVE_DATA,

QIANG_HAVE_KNOW,

QIANG_MAYB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值