(请用C语言)
试着利用命题公式的推理关系解决下列逻辑问题:
一对夫妻带着他们的一个孩在路上碰到一个朋友。朋友问:“你是男还是女?”朋友没听清孩的回答。孩的父母中某一个说,我孩回答的是“我是男孩”,另一个接着说:“这孩撒谎,她是女孩。”这家人中男性从不说谎,而女性从来不连续说两句真话,也不连续说两句假话。试问这小孩性别,以及谁是其父亲,谁是其母亲?
这个里面有:https://wenku.baidu.com/view/d8a95c287fd184254b35eefdc8d376eeaeaa17b5.html
穷举呗
#include <stdio.h>
int main(){
/*一对夫妻带着他们的一个孩在路上碰到一个朋友。朋友问:“你是男还是女?”
朋友没听清孩的回答。孩的父母中某一个说,我孩回答的是“我是男孩”,
另一个接着说:“这孩撒谎,她是女孩。”这家人中男性从不说谎,
而女性从来不连续说两句真话,也不连续说两句假话。
试问这小孩性别,以及谁是其父亲,谁是其母亲?
*/
for(int cs=0;cs<=1;cs++) //0-男,1-女
{
for(int one=0;one <=1;one++)//第一个说话的:0-父,1-母
{
if(one==0 && cs==0)
{
if((!(cs==0) == 0 && (cs==1) == 0) || (!(cs==0) == 1 && (cs==1) == 1))
printf("小孩:%d;父亲:%d;母亲:%d\n",cs,0,1);
}
if(one==1)
{
if(!(cs==0) && (cs==1))
printf("小孩:%d;父亲:%d;母亲:%d\n",cs,1,0);
}
}
}
return 0;
}