C语言竞赛题题.docVIP

C语言竞赛题题.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言竞赛题题

41.哪个大夫哪天值班 医院有A、B、C、D、E、F、G七位大夫,在一星期内(星期一至星期天)每人要轮流值班一天。现在已知: A大夫比C大夫晚一天值班; D大夫比E大夫晚二天值班; B大夫比G大夫早三天值班; F大夫的值班日在B和C大夫的中间,且是星期四; 请确定每天究竟是哪位大夫值班? *问题分析与算法设计 由题目可推出如下已知条件: *F是星期四值班; *B值班的日期在星期一至星期三,且三天后是G值班; *C值班的日期在星期五至星期六,且一天后是A值班; *E两天后是D值班;E值班的日期只能在星期一至星期三; 在编程时用数组元素的下标1到7表示星期一到星期天,用数组元素的值分别表示A~F七位大夫。 ------------------------------------------------------- 42.区分旅客国籍 在一个旅馆中住着六个不同国籍的人,他们分别来自美国、德国、英国、法国、俄罗斯和意大利。他们的名字叫A、B、C、D、E和F。名字的顺序与上面的国籍不一定是相互对应的。现在已知: 1)A和美国人是医生。 2)E和俄罗斯人是技师。 3)C和德国人是教师。 4)B和F曾经当过兵,而德国人从未参过军。 5)法国人比A年龄大;意大利人比C年龄大。 6)B同美国人下周要去西安旅行,而C同法国人下周要去杭州度假。 试问由上述已知条件,A、B、C、D、E和F各是哪国人? *问题分析与算法设计 首先进行题目分析,尽可能利用已知条件,确定谁不是哪国人。 由:1) 2) 3)可知:A不是美国人,E不是俄罗斯人,C不是德国人。另外因为A与德国人的职业不同,E与美、德人的职业不同,C与美、俄人的职业不同,故A不是俄罗斯人或德国人,E不是美国人或德国人,C不是美国人或俄罗斯人。 由4)和5)可知B和F不是德国人,A不是法国人,C不是意大利人。 由6)可知B不是美国人,也不是法国人(因B与法国人下周的旅行地点不同);C不是法国人。 将以上结果汇总可以得到下列条件矩阵: . 美(医生) 英 法 德(技师) 意大利 俄(教师) A(医生) X . X X . X B X . X X . . C(技师) X . X X X X D . . . . . . E(教师) X . . X . X F . . . X . . 谁家孩子跑最慢 张王李三家各有三个小孩。一天,三家的九个孩子在一起比赛短跑,规定不分年龄大小,跑第一得9分,跑第2得8分,依此类推。比赛结果各家的总分相同,且这些孩子没有同时到达终点的,也没有一家的两个或三个孩子获得相连的名次。已知获第一名的是李家的孩子,获得第二的是王家的孩子。问获得最后一名的是谁家的孩子? *问题分析与算法设计 按题目的条件,共有1+2+3+...+9=45分,每家的孩子的得分应为15分。根据题意可知:获第一名的是李家的孩子,获第二名的是王家的孩子,则可推出:获第三名的一定是张家的孩子。由“这些孩子没有同时到达终点的”可知:名次不能并列,由“没有一家的两个或三个孩子获得相连的名次”可知:第四名不能是张家的孩子。 程序中为了方便起见,直接用分数表示。 44.拉丁方 构造 NXN 阶的拉丁方阵(2=N=9),使方阵中的每一行和每一列中数字1到N只出现一次。如N=4时: 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 *问题分析与算法设计 构造拉丁方阵的方法很多,这里给出最简单的一种方法。观察给出的例子,可以发现:若将每 一行中第一列的数字和最后一列的数字连起来构成一个环,则该环正好是由1到N顺序构成;对于第i行,这个环的开始数字为i。按照 此规律可以很容易的写出程序。下面给出构造6阶拉丁方阵的程序。 -#includestdio.h main() {int i,j,k,t,N; scanf(%d,N); printf(The possble Latin Squares of order %d are:\n,N); for(j=0;jN;j++) /*构造N个不同的拉丁方阵*/ {for(i=0;iN;i++) { t=(i+j)%N; /*确定该拉丁方阵第i 行的第一个元素的值*/ for(k=0;kN;k++)

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档