C语言实例 区分旅客国籍

  在一个旅馆中住着六个不同国籍的人, 他们分别来自美国、德国、英国、法国、俄罗斯和意大利。 名字的顺序与下面的国籍不一定是相互对应的。 现在已知:

  1)A美国人是医生。

  2)E和俄罗斯人是技师。

  3)C和德国人是技师。

  4)B和F曾经当过兵, 而德国人从未参过军。

  5)法国人比A年龄大;意大利人比C年龄大。

  6)B同美国人下周要去西安游览, 而C同法国人下周要去杭州度假。

  试问由上述已知条件, 确定谁不是哪国人。

  由:1)2)3)可知:A不是美国人, 另外由于A与德国人的职业不同, C与美、俄人的职业不同, A不是法国人, C不是意大利人。

  由6)可知B不是美国人,

  将以上结果汇总可以失掉下列条件矩阵:

  . 可以方便地失掉效果的答案。

  程序阐明与注释

  {/当一切六列均处置终了后参加循环/

  if(e==1)/若该列只要一个元素为非零, 则进行消去操作/

  C言语运转结果

  效果的进一步讨论

  生成条件矩阵然后使用消去法进行推理判别是一种常用的方法。 对于解决较为复杂的逻辑效果是十分有效的。

  思考题

  天文课上教师给出一张没有阐明省份的中国地图, 收反鸢甘鞘裁矗?/p>

  A答:2号陕西, 4号吉林

  E答:2号甘肃, 3号陕西

posted on 2011-03-28 07:59  青青啊  阅读(283)  评论(0编辑  收藏  举报

导航