下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

运用C语言区别一下旅客国籍

作者:课课家教育     来源: http://www.kokojia.com点击数:1713发布时间: 2016-12-19 09:00:30

标签: 编程代码C语言条件矩阵

大神带你学编程,欢迎选课

  C语言是一门通用计算机编程语言,应用广泛。更多的时候,我们都会将C语言运用到日常生活中。不得不说,C语言真的帮我们解决了很多日程生活中的问题,就好比如说:区别旅客国籍。今天我们依旧来学习一下C语言的编程实例:运用C语言区别一下旅客国籍。

  1、问题提出

  首先我们先来了解一下问题吧。具体的问题如下:

  在一个小镇上有一间旅馆,有六个不同国籍的人同时入住了这个旅馆中,这六个人分别来自美国、法国、俄罗斯、德国、英国以及意大利。在这里,小编暂且将他们的名字称为A、B、C、D、E以及F。但是要注意一点,那就是名字的顺序和上面的国籍不一定是相互对应的哟,所以大家要小心咯。现在我们已知有六个条件,分别是:

  ①名字为E的人与俄罗斯人是一名技师。

  ②名字为C的人与德国人是一名技师。

  ③名字为A美国人是一名医生。

  ④名字为C的人要和法国人下一周去杭州度假,而名字为B的人要和美国人下一周去西安旅行。

运用C语言区别一下旅客国籍_编程代码_C语言_条件矩阵_课课家

  ⑤意大利人比名字为C的人年龄要大;法国人比名字为A的人年龄要大。

  ⑥名字为B的人和名字为F的人曾经都当过兵,然而德国人从来都没有参过军。

  那么现在请问一下大家,根据以上的六个已知条件,我们可以知道A、B、C、D、E和F这六个人分别是哪一国人的吗?

  2、分析问题和设计算法

  好了,根据以上的已知条件,我们首先要做的就是进行分析题目,然后尽可能使用这些已知条件,确定一下究竟谁不是哪一国的人。大家可以看一下小编的分析,看是否合理咯。具体的分析如下:

  由条件①②③我们可以知道:A并不是美国人,C不是德国人,而E也不是俄罗斯人。另外我们还知道因为A和德国人的职业是不一样的,C和俄罗斯人、美国人的职业是不一样的,E和德国人、美国人的职业是不一样的。因此我们可以知道,A不是德国人或者是俄罗斯人,C不是俄罗斯人或者美国人,E不是德国人或者是美国人。

  由条件④我们可以知道:C不是法国人,B不是法国人,也不是美国人(因为B和法国人下一周的旅行地点是不一样的)。

  由条件⑤⑥我们可以知道:A不是法国人,B以及F两者都不是德国人,C不是意大利人。

  现在我们基本就已经将问题分析完毕了,把刚刚得出来的结果汇总在一起,我们就可以得到下面这个条件矩阵了。具体的矩阵如下:

分析问题和设计算法

  小编就简单的为大家解释一下解题思路吧,只要我们根据以上的这个表格,然后再使用消元法来进行求解,就可以非常方便简单地得到问题的答案。现在我们只需要把条件矩阵输入到计算机中去,接着使用程序来实现消去算法也是非常容易的哟。大家不妨可以动手尝试做一下!

  3、程序注释和说明

  在这里,小编还是会为大家提供一下具体的编程代码的,大家只要将其进行编译就可以得到结果咯。具体的代码如下图:

第一页编程代码第二页编程代码

  4、运行结果

  通过以上的编程代码,大家会知道运行结果是怎样的吗?大家可以看一下最终得出来的结果。如下图:

最终得出来的结果

  5、进一步讨论

  最后,我们再来进一步的讨论一下这个问题吧。最常用的方法就是:生成一个条件矩阵,接着使用消去法进行相应的推理判断。其实这种方法是非常有效的,特别是对于一些解决比较复杂的逻辑问题来说。

  6、思考题

  好了,为了可以让大家更加深入的理解这方面的知识,小编特意找了一道思考题给大家,希望大家可以学以致用,练习一下以下的思考题,这对大家百利而无一害的哟!思考题如下:

  在地理课上,老师给出了一张中国地图。在这张中国地图上,并没有说明省份的。我们从中选出五个省,将其编号为从1到5,现在就要大家写出这个五个省份的名称。成功交卷以后,五位同学每一个人只答了二个省份的名称如下,并且每一个人都只答对了一个省。那么问题就来了,正确的答案究竟是什么?大家可以根据上面的题目来进行相对应的练习哟!

  同学A回答说:5号是甘肃省,2号是陕西省。

  同学B回答说:4号是山东省,2号是湖北省。

  同学C回答说:5号是吉林省,1号是山东省。

  同学D回答说:4号是吉林省,3号是湖北省。

  同学E回答说:3号是陕西省,2号是甘肃省。

  小编结语:

  通过这篇编程语言教程,不知道大家是否已经学会了运用C语言区别一下旅客国籍呢?如果还是不太懂,可以看多几遍教程哟,毕竟实现的方法还是较为简单的。课课家教育每天更新不同的教程,一起来学习吧。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程