C语言 穷举法 婚礼上的谎言

题目
3对情侣参加婚礼,3个新郎abc,三个新娘为xyz,有人想知道究竟谁与谁结婚,于是就问新人中的三位,得到以下结果,a说他将和x结婚,x说他的未婚夫是c,c说他讲和z结婚,这人事后知道他们在开玩笑,说的全是假话,那么究竟谁与谁结婚了呢,
用C语言实现问题的解决

’这里借鉴的书上的代码,具体用到的穷举法。

#include<stdio.h>
int main()
{
	int a,b,c;  /*代表新郎,为了方便循环表达用123来代替新娘的xyz*/
	for(a=1;a<=3;a++)   /*这里用到穷举法,就是把所有的组合走一遍*/
	  for(b=1;b<=3;b++)  /*会有三个人娶到同一个人的情况所以下面要加if来判断*/
	    for(c=1;c<=3;c++)  /*这里abc对应的情况是111,112,113然后跳出c循环穷举出b娶到2新娘的情况121,122,123以此类推*/
	      if(a!=1&&c!=1&&c!=3&&a!=b&&a!=c&&b!=c) /*注意这里的条件不要忘记三个人不能娶同一个老婆*/      
	        {  printf("%c将要嫁给A\n",'X'+a-1);
	           printf("%c将要嫁给B\n",'X'+b-1);
	           printf("%c将要嫁给C\n",'X'+c-1);
			 } 
			 return 0;
	
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值