实例8 婚礼上的谎言问题

三对新人参加婚礼,三位新郎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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值