【C语言训练】谁家孩子跑最慢
来源:互联网 发布:图片归类软件 编辑:程序博客网 时间:2024/04/30 05:02
题目描述
张王李三家各有三个小孩。一天,三家的九个孩子在一起比赛短跑,规定不分年龄大小,跑第一得9分,跑第2得8分,依此类推。比赛结果各家的总分相同,且这些孩子没有同时到达终点的,也没有一家的两个或三个孩子获得相连的名次。已知获第一名的是李家的孩子,获得第二的是王家的孩子。问获得最后一名的是谁家的孩子?
输入
输出
输出最后一名的那家的姓的一个字母且以大写输出(若为张家,则输出Z)
样例输入
样例输出
提示
按题目的条件,共有1+2+3+...+9=45分,每家的孩子的得分应为15分。根据题意可知:获第一名的是李家的孩子,获第二名的是王家的孩子,则可推出:获第三名的一定是张家的孩子。由“这些孩子没有同时到达终点的”可知:名次不能并列,由“没有一家的两个或三个孩子获得相连的名次”可知:第四名不能是张家的孩子。
【代码】
#include <stdio.h>main() { int score[4][4]; int i,j,k,who;//i,j,k代表三家的跑二个的孩子(Z,W,L) score[1][1]=7; //张家 score[1][2]=8; //王家 score[1][3]=9; //李家 for(i=4;i<=5;i++) //张家的孩子不可能是第4名,所以不可能得6分 for(j=4;j<=6;j++) for(k=4;i!=j&&k<=6;k++) if(k!=i&&k!=j&&15-i-score[1][1]!=15-j-score[1][2]&&15-i-score[1][1]!=15-k-score[1][3]&&15-j-score[1][2]!=15-k-score[1][3])//第二三名不并列 { //将满足条件的结果记入数组score[2][1]=i;score[3][1]=15-i-7; score[2][2]=j;score[3][2]=15-j-8; score[2][3]=k;score[3][3]=15-k-9; } for(j=1;j<=3;j++) if(score[3][j]==1) who=j;switch(who){case 1:printf("Z");break;case 2:printf("W");break;case 3:printf("L");break;}}
0 0
- 【C语言训练】谁家孩子跑最慢
- 1173: 【C语言训练】谁家孩子跑最慢*
- 1173: 【C语言训练】谁家孩子跑最慢*
- 1044: 谁家孩子跑最慢*
- 1044:谁家孩子跑最慢
- 谁家孩子跑的最慢-C语言
- 谁家孩子
- 谁家孩子跑最快.....
- (百例编程)57.谁家的孩子跑最慢
- 谁家孩子跑得最慢
- C语言训练
- 【C语言训练】排列
- 逻辑推理与判断(谁家孩子跑得快)
- C语言实现:孩子兄弟树
- 【C语言训练】斐波纳契数列
- c语言入门训练1.0
- c语言入门训练1.1
- c语言入门训练1.2
- Spring的两种代理方式:JDK动态代理和CGLIB动态代理
- 比特承诺 Bit Commitment
- Maven详解之仓库------本地仓库、远程仓库
- Android 音频系统:从 AudioTrack 到 AudioFlinger
- Python打包并引用
- 【C语言训练】谁家孩子跑最慢
- HTDP学习笔记(2)--习题2.2.1之我的答案
- 安装Git
- 设计模式之6大设计原则
- 基于Java实现的基本二叉树
- java八大基本类型
- JNI高阶知识总结
- oracle--PLSQL
- Muduo之Channel源码解析