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号陕西