您的位置:首页 > 其它

逻辑推理与判断(谁家孩子跑得快)

2015-01-27 22:09 344 查看
/****************************************
*  File Name  : reasoning.c
*  Creat Data : 2015.1.27
*  Author     : ZY
*****************************************/

/*逻辑推理与判断*/
/*谁家孩子跑得快*/
/*张,王,李三家各有一个小孩。一天,三家的九个孩子在一起比赛短跑,规定不分年龄大小,
跑第一得9分,跑第二得8分,依次类推,比赛结果各家总分相同,且这些孩子没有同时到达终
点的,也没有一家的两个或三个孩子获得相连的名次,已知获第一的是李家的孩子,获得第二
的是王家的孩子,问获得最后一名的是谁家的孩子?
可知总分为45,则各家15分
用矩阵输出*/

#include <stdio.h>
int main(void)
{
int i,j,k,who;
int score[4][4];
score[1][1] = 7;//score[1],张家孩子的得分
score[2][1] = 8;//score[2],王家孩子的得分
score[3][1] = 9;//score[3],李家孩子的得分
for(i = 4;i < 6;i++)//i:张家孩子在4到5分段可能的分数
{
for(j = 4;j < 7;j++)//j:王家孩子在4到6分段可能的分数
{
for(k = 4;i != j &&k < 7;k++)//k:李家孩子在4到6分段可能的分数
{
if((k!=i&&k!=j)&&(15-i-score[1][1]!=15-j-score[2][1])//分数不能并列
&&(15-i-score[1][1]!=15-k-score[3][1])
&&(15-j-score[2][1]!=15-k-score[3][1]))
{//将满足条件的计入二维数组(矩阵)
score[1][2] = i;
score[1][3] = 15-i-7;
score[2][2] = j;
score[2][3] = 15-j-8;
score[3][2] = k;
score[3][3] = 15-k-9;
}
}
}
}
for(who = 0,i = 1;i < 4;i++,printf("\n"))
{
for(j = 1;j < 4;j++)
{
printf("%d ",score[i][j]);//输出各家孩子的分数
if(score[i][j] == 1)
{
who = i;
}
}
}
if(who == 1)//输出最后判断的结果
{
printf("The last one arrived to end is a child from family Zhang.\n");
}
else if(who == 2)
{
printf("The last one arrived to end is achild from family Wang.\n");
}
else
{
printf("The last one arrived to end is achild from family Li.\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: