快捷搜索:  汽车  科技

c语言输入性别用字符吗(c语言新郎和新娘)

c语言输入性别用字符吗(c语言新郎和新娘)#include "stdio.h" main() { char husband[3] = {'A' 'B' 'C'} wife[3] = {'X' 'Y' 'Z'}; int i j k; for(i=0;i<3;i ) for(j=0;j<3;j ) for(k=0;k<3;k ) if(i!=j && j!=k && i!=k) /*不能1个新娘配2个新郎*/ { /*得到一种配对方式*/ if (match(i j k wife))

题目要求:

三对新婚夫妇参加婚礼,三个新郞为A、B、C,三个新娘为X、Y、Z。有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人听后知道他们在开玩笑,全是假话。请编程找出谁将和谁结婚。

题目分析:

如果“乱点鸳鸯谱”的话,三个新郎A、B、C和三个新娘X、Y、Z共有6种配对组合方式。这是因为不能出现两个新郎(新娘)和一个新娘(新郎)结婚的状况,所以只可能有3*2*1=6种配对方案。因此只要穷举出这6种配对方案,再应用问题中给出的约束条件就可以筛选出正确的答案来。

#include "stdio.h" main() { char husband[3] = {'A' 'B' 'C'} wife[3] = {'X' 'Y' 'Z'}; int i j k; for(i=0;i<3;i ) for(j=0;j<3;j ) for(k=0;k<3;k ) if(i!=j && j!=k && i!=k) /*不能1个新娘配2个新郎*/ { /*得到一种配对方式*/ if (match(i j k wife)) { printf("husband wife\n"); /*这种配对方式符合题目要求*/ printf("A---------%c\n" wife[i]); printf("B---------%c\n" wife[j]); printf("C---------%c\n" wife[k]); } } getche(); } int match(int i int j int k char wife[]) { /*A不和X结婚*/ if(wife[i] == 'X') return 0; /*X不和C结婚*/ if(wife[k] == 'X') return 0; /*C不和Z结婚*/ if(wife[k] == 'Z') return 0; return 1; }

运行结果:

c语言输入性别用字符吗(c语言新郎和新娘)(1)

运行结果

猜您喜欢: