编程c语言结婚祝福,C语言解决新郎和新娘配对问题代码解析

原标题:C语言解决新郎和新娘配对问题代码解析

问题描述

有3对情侣结婚,假设2个新郎为A、B、C,3个新娘为X、Y、Z,有参加婚礼的人搞不清谁和谁结婚,所以去询问了这6位新人中的3位,得到的回答如下:新郎A说他要和新娘X结婚;新娘X说她的未婚夫是新郎C;而新郎C说他要和新娘Z结婚。

听到这样的回答后,提问者知道他们都是在开玩笑,说的都是假话,但他仍搞不清谁和谁结婚,现在请编程求出到底哪位新郎和哪位新娘结婚。

问题分析

根据问题描述,提问者得到的回答都是假话,因此新郎A的新娘不是X,X的新郎不是C,C的新娘不是Z。

显然,一个新郎只能和一个新娘结婚,他们之间是一对一的关系。

算法设计

可以采用穷举法来解决。

设3个char型变量x、y和z分别表示与新娘X结婚的新郎、与新娘Y结婚的新郎和与新娘Z结婚的新郎,它们可能取值的集合是{‘A’,’B’,’C’}。

根据问题分析中获得的结论,可以得出判断依据如下:

x!='A' 表示新郎A的新娘不是X;

x!='C' 表示与新娘X结婚的新郎不是C;

z!='C’ 表示C的新娘不是Z;

x!='y' 表示与新娘X结婚的新郎不会与新娘Y结婚;

x!='z' 表示与新娘X结婚的新郎不会与新娘Z结婚;

y!='z' 表示与新娘Y结婚的新郎不会与新娘Z结婚。

将上面的判断依据组合起来,找到变量x、y和z所满足的条件如下:

x!='A' && x!='C' && z!='C' && x!=y && x!=z && y!=z

找到上面的条件以后,可以在程序中使用三重循环来穷举和z的所有取值,找出满足上述条件的x值、y值和z值,这样便解决了到底哪位新郎和哪位新娘结婚的问题了。

下面是完整的代码:

#include

int main()

{

char x, y, z;

for(x='A'; x<='C'; x++)

for(y='A'; y<='C'; y++)

for(z='A'; z<='C'; z++)

if(x!='A' && x!='C' && z!='C' && x!=y && x!=z && y!=z)

{

printf("结果为:n");

printf("新娘X与新郎%c结婚。n", x);

printf("新娘Y与新郎%c结婚。n", y);

printf("新娘Z与新郎%c结婚。n", z);

}

return 0;

}

运行结果:

结果为:

新娘X与新郎B结婚。

新娘Y与新郎C结婚。

新娘Z与新郎A结婚。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-11/155409.htm返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值