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

3对情侣参加婚礼,3个新郎为A, B, C , 3个新娘为X, Y, Z 有人想知道究竟谁与谁结婚,于是就问新人中得三位,得到如下结果:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人事后知道他们在开玩笑,说的全部是假话。那么,究竟谁与谁结婚呢?

代码如下:

#include <stdio.h>
int main()
{
	int 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\n 将嫁给 A\n",'X'+a - 1);
				    printf("%c\n 将嫁给 B\n",'X'+b - 1);
				    printf("%c\n 将嫁给 C\n",'X'+c - 1);
	            }
			}
		}
	}
}

 运行结果:

 Z

 将嫁给 A

X

 将嫁给 B

Y

 将嫁给 C

你可能感兴趣的:(c,算法)