C语言编程题——猜凶手

C语言——猜凶手

题目内容:
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。 以下为4个嫌疑犯的供词:
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说 已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。

将上述的实际问题转化,其实就是求满足以上三个情况,不满足一个情况就可以,因此,可以设置一个变量,每满足一个要求变量++,只有当变量为3时才满足题目所给要求,也就是唯一凶手。
代码如下:

#include <stdio.h>
//猜凶手
int FindMurder(char mu)
{
	int real=0;    // 满足情况加一
	if(mu!='A')  real++;
	if(mu=='C')  real++;
	if(mu=='D')  real++;
	if(mu!='D')  real++;
	return real;
} 
int main()
{
	char murder;
	printf("请输入猜测的凶手:(A,B,C,D)\n");
	while(1)
	{
		scanf("%c",&murder);
		int TrueAnswer=FindMurder(murder);
		if( TrueAnswer==3 )  //判断完四种情况,只满足三种情况
		{
			printf("回答正确,%c是凶手...\n",murder);
			break; 
		}
		else    
		{
			printf("猜错了,再猜一次吧...\n"); 
		} 
		scanf("%c",&murder);
	}
}

(遗留问题:末尾的scanf语句删除后会打印两遍else内容,不知道为什么,o(╥﹏╥)o,后面再问问别人吧)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值