三对新人参加婚礼,三位新郎A、B、C,三位新娘X、Y、Z。有人想知道谁与谁结婚,于是就问他们:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。他们都在说谎。编程求谁与谁结婚。
#include<stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c; //a,b,c为三个男人
for(a=1;a<=3;a++) //给a,即第一个男人尝试匹配给每一个女人
for(b=1;b<=3;b++) //给a,即第一个男人尝试匹配给每一个女人
for(c=1;c<=3;c++) //给a,即第一个男人尝试匹配给每一个女人
if(a!=1 && c!=3 && c!=1 && a!=b && b!=c && a!=c) //根据他们说的话进行判断
{
//判断条件前三个是谎言的反逻辑条件表达,后三个是三人匹配唯一性表达
//符合条件,即正确的情况下,输出正确答案
printf("%c将嫁给A\n",'X'+a-1);
printf("%c将嫁给B\n",'X'+b-1);
printf("%c将嫁给C\n",'X'+c-1);
}
//程序计算结束。退出程序
system("pause");
return 0;
}