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

  • 2
  • 0
  • 约6.93千字
  • 约 7页
  • 2018-08-14 发布于江苏
  • 举报

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_MAYBE_KNO

文档评论(0)

1亿VIP精品文档

相关文档