c语言实例--婚礼上的谎言

问题:三对情侣参加婚礼,3个新郎abc3个新娘xyz,有人想知道究竟谁和谁结婚,于是就问新人中的三位,得到如下提示:a说他将和x结婚;x说他的未婚夫是cc说他将和z结婚。这人事后知道他们都在开玩笑,说的全是假话,那么究竟谁与谁结婚呢?

思路先行:  

      第一步:    我们设a=1 代表(a与x结婚),否则 a!=1;  

                                  b=2 代表(b与y结婚),否则b!=2;   

                                  c=3 代表(c与z结婚),否则c!=3.

     第二步:现在我们知道了题目中的三种情况为假: a说他将和x结婚 代表 a!=1; 

                                                                                x说她的未婚夫是c 代表c!=1; 

                                                                                c说他将和z结婚 代表 c!=3.

     第三步:根据现实情况,我们知道:3个新郎之间不能互为配偶,即代表 a!=b;a!=c;b!=c.

     第四步:穷举所有的情况,再进行判断。

代码如下:

#include <stdio.h>                                            //引用头文件
main()
{
	int a,b,c;			                      //定义新郎a,b,c三个变量
	for(a=1;a<=3;a++)                                     //穷举a的所有可能
		for(b=1;b<=3;b++)		              //穷举b的所有可能
			for(c=1;c<=3;c++)                     //穷举c的所有肯能
				if(a!=1 && c!=1 && c!=3 && a!=b && a!=c && b!=c)   //最重要的:看思路
				{
					printf("%c将嫁给A\n",'X'+a-1);	//输出结果:'X'+a-1 表示  字母'X'+a(最终符合条件的a)-1;
					printf("%c将嫁给B\n",'X'+b-1);              'X'+b-1 表示  字母'X'+b(最终符合条件的b)-1;
					printf("%c将嫁给C\n",'X'+c-1);              'X'+c-1 表示  字母'X'+c(最终符合条件的c)-1;
				}
}

输出结果如下:


微笑微笑吐舌头偷笑吐舌头大笑吐舌头微笑偷笑





  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值