编程题:猜凶手 (C语言实现)

#include<stdio.h>
int main()
{
	int killer = 0;
	for (killer = 'a'; killer <= 'd';killer++)
	{
		if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
		{
			printf("凶手是:%c", killer);
		}
	}
	return 0;
}

只有3个人说真话 1个人说假话
A;不是我 B:是C   C:是D   D:C在胡说

依次假设A,B,C,D是凶手,例如先假设A是凶手,则A说的是假话,B说的是假话,C说的是假话,D说的是真话。 所以总共是3个人说假话,1个人说真话 不符合

假设B是凶手,则A说的是真话,B说的是假话,C说的是假话,D说的是真话。 所以总共是2个人说假话,2个人说真话 不符合

假设C是凶手,则A说的是真话,B说的是真话,C说的是假话,D说的是真话。 所以总共是1个人说假话,3个人说真话 符合

假设D是凶手,则A说的是真话,B说的是假话,C说的是真话,D说的是假话。 所以总共是2个人说假话,2个人说真话 不符合

编程实现:
创建变量killer (凶手)
建立个循环,以killer为A开始依次比对4个条件,若不满足3个为真则,A++,设B为凶手,再比对4个条件,直至满足3个为真,则那时killer的值为凶手。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值