本文主要是介绍C abcd四人中一人说谎,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.题目
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯
的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。
2.程序代码
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
#include <Windows.h>int main()
{int a = 0;int b = 0;int c = 0;int d = 0;//定义四个参数,当做四个嫌疑犯for (a = 0; a <= 1; a++){for (b = 0; b <= 1; b++){for (c = 0; c <= 1; c++){for (d = 0; d <= 1; d++)//每个人都有两种可能,1为凶手,0不是,//所以要用四个循环来排除{if ((((a == 0) + (c == 1) + (d == 1) + (d != 1)) == 3)&&((a + b + c + d) == 1))//三个人有一个说谎,所以加在一起应该为3,//而凶手只能为一个人,所以四个人加在一起为1{if (a == 1){printf("a是凶手\n");}else if (b == 1){printf("b是凶手\n");}else if (c == 1){printf("c是凶手\n");}else{printf("d是凶手\n");}}}}}}system("pause");return 0;
}
3.执行结果
这篇关于C abcd四人中一人说谎的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!