拿捏--->逻辑推断问题(猜凶手+猜名次)

文章目录

  • 猜凶手问题
    • 题目描述
    • 算法思路
    • 代码实现
  • 猜名次问题
    • 题目描述
    • 算法思路
    • 代码实现

猜凶手问题

题目描述

拿捏--->逻辑推断问题(猜凶手+猜名次)_第1张图片

算法思路

拿捏--->逻辑推断问题(猜凶手+猜名次)_第2张图片

代码实现

#define  _CRT_SECURE_NO_WARNINGS
#include
int main()
{
	char killer = 0;
	for (killer = 'A'; killer < 'D'; killer++)
	{
		if ((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3)
		{
			printf("killer is %c\n", killer);
		}
	}
	return 0;
}

在这里插入图片描述

猜名次问题

题目描述

拿捏--->逻辑推断问题(猜凶手+猜名次)_第3张图片

算法思路

拿捏--->逻辑推断问题(猜凶手+猜名次)_第4张图片

代码实现

#define  _CRT_SECURE_NO_WARNINGS
#include
int main()
{
	for (int A = 1; A <= 5; A++)
	{
		for (int B = 1; B <= 5; B++)
		{
			for (int C = 1; C <= 5; C++)
			{
				for (int D = 1; D <= 5; D++)
				{
					for (int E = 1; E <= 5; E++)
					{
					//排除并名次
						if (A*B*C*D*E == 120 && A + B + C + D + E == 15)
					{
					//判断真假
						if ((B == 2) + (A == 3) == 1 &&
							(B == 2) + (E == 4) == 1 &&
							(C == 1) + (D == 2) == 1 &&
							(C == 5) + (D == 3) == 1 &&
							(E == 4) + (A == 1) == 1)
						{
							printf("A=%d B=%d C=%d D=%d E=%d", A, B, C, D, E);
							printf("\n");
						}
						}
					}
				}
			}
		}
	}
	return 0;
}

在这里插入图片描述

你可能感兴趣的:(C语言详解,c语言,算法)