编程介的小学生 2019-01-20 22:18 采纳率: 20.5%
浏览 828
已采纳

一个字符串匹配的搜索的方式,按照字母顺序,采用C语言的实现

Problem Description
In a corridor in a student dormitory, there are ve rooms numbered 1, 2, 3, 4 and 5; room number 1 is the left-most room. The rooms have doors in different colours: blue, green, red, white and yellow, but not necessarily in that order.

In these rooms live five students Anna, Bernhard, Chris, David and Ellen of five different nationalities Danish, Finnish, Icelandic, Norwegian and Swedish. (Both the names and the nationalities are given in alphabetical order, so it does not follow automatically that Anna is Danish.)

These students have one computer each, and these computers are of different kinds: Amiga, Atari, Linux, Mac and Windows (given here in alphabetical order). They each have their own favourite programming language: C, C++, Java, Pascal and Perl (also listed in alphabetical order).
You want to find out who owns the Amiga computer based on some facts about the students.

Input
The input consists of several scenarios. The rst input line contains a number 1?000 indicating how many scenarios there are.
Each scenario starts with a line with a number 1?000 telling how many fact lines there are for that scenario. Then follow the fact lines which each contains three words separated by one or more spaces:
---The first and third word is one of these names:
1 2 3 4 5
blue green red white yellow
anna bernhard chris david ellen
danish finnish icelandic norwegian swedish
amiga atari linux mac windows
c c++ java pascal perl
(Note that no uppercase letters are used.)

---The second word specifies a relationship; it is one of
same-as left-of right-of next-to
same-as tells that the first and third fact words apply to the same room; for instance
blue same-as bernhard
tells that Bernhard lives in the room with a blue door.
left-of tells that the first fact word applies to the room immediately to the left of the one to which the third fact word applies. For example,
chris left-of perl
means that Chris lives in the room immediately to the left of the Perl programmer.
right-of tells that the rst fact word applies to the room immediately to the right of the one to which the third fact word applies.
next-to tells that the two fact words apply to rooms next to each other. For example,
swedish next-to linux
means that the Swedish student lives in the next room (either to the left or the right) of the owner of the Linux computer.

You may assume that there are no inconsistencies in the input data. In other words, there will in every scenario be at least one person who may own the Amiga without violating the constraints.

Output
For each scenario, you should print a line starting with scenario #n : where n is the scenario number. If you can determine who (i.e., Anna, Bernhard, Chris, David or Ellen) owns the Amiga, you continue the line with
xxxx owns the amiga.
or, if you cannot name the Amiga owner, you print cannot identify the amiga owner.

Sample Input
2
8
red same-as 1
danish same-as 1
perl same-as 5
atari same-as 2
linux same-as 3
mac same-as 4
windows same-as 5
anna same-as 1
8
chris left-of amiga
chris left-of 4
c same-as 1
danish same-as 1
red same-as 1
linux same-as red
windows next-to linux
mac left-of swedish

Sample Output
scenario #1: anna owns the amiga.
scenario #2: cannot identify the amiga owner.

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-02-03 22:15
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况