1.描述
3对情侣参加婚礼,3个新郎为A、B、C,3个新娘为X、Y、Z,有人想知道究竟谁与谁结婚,于是就问新人中的三位,得到如下结果:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人事后知道他们在开玩笑,说的全是假话。那么,究竟谁与谁结婚呢?
2.分析
在本题中由于数目比较少,可以采用穷举法,分别把A,B,C所用的可能(A,B,C都有三种可能)都列举出来,并且A与B,B与C,A与C,不能在一起,
再进一步排出谎言(eg:用A=1表示A与X结婚),得出答案
3.实现
#include<stdio.h>
int main()
{
int A,B,C;
for(A=1;A<=3;A++)
{
for(B=1;B<=3;B++)
{
for(C=1;C<=3;C++)
{
if(A!=1&&C!=1&&C!=3&&A!=B&&A!=C&&B!=C)
{
printf("A---%c\n",A+'X'-1);
printf("B---%c\n",B+'X'-1);
printf("C---%c\n",C+'X'-1);
}
}
}
}
}