C语言猜凶手的代码实现

 更新时间:2023年07月09日 15:47:50   作者:高高的胖子  
本文主要介绍了C语言猜凶手的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

题目:

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。

以下为4个嫌疑犯的供词:

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说

已知3个人说了真话,1个人说的是假话。

现在请根据这些信息,写一个程序来确定到底谁是凶手。

思路: 总体思路:

依次假设每个人是凶手进行判断,看4人说的话是不是 1假3真,是则证明假设的该人就是凶手         

定义变量:

char killer = 0; -- 凶手

因为 a b c d 的ASCII码值是连着的,

所以有 a+1=b,以此类推,依次假定每个人是凶手,判断情况

(使用 for循环 依次假定每个人是凶手)           

把4句话,4个情况列出来,

情况 1假3真 ,真为 1 ,假为 0 ,

4种情况 “相加”==3 ,

(使用 if条件判断语句 实现)

即 当前假定的人就是凶手,进行打印     

一步到位:

(1).定义变量:

char killer = 0; -- 凶手

(2).

因为 a b c d 的ASCII码值是连着的,

所以有 a+1=b,以此类推,依次假定每个人是凶手,判断情况

(使用 for循环 依次假定每个人是凶手)               

(3).

把4句话,4个情况列出来,

情况 1假3真 ,真为 1 ,假为 0 ,

4种情况 “相加”==3 ,

(使用 if条件判断语句 实现)

即 当前假定的人就是凶手,进行打印              

实现代码

#include <stdio.h>
int main()
{
	//定义变量:
	char killer = 0; //凶手
	//依次假定每个人是凶手:
	for (killer = 'a'; killer <= 'd'; killer++)
	//因为 a b c d 的ASCII码值是连着的,所以a+1==b,
	//以此类推,依次假定每个人是凶手,判断情况
	{
		//把4个情况列出来:
		if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
		//把4句话,4个情况列出来,情况1假3真,真为1,假为0,4种情况“相加”==3,符合就是凶手进行打印
		{
			//符合则进行打印
			printf("凶手是:%c\n", killer);
			break;
		}
	}
	return 0;
}

实现图片:

(注:for循环的判断条件是 killer <= 'd')

最终代码和实现效果

最终代码

#include <stdio.h>
int main()
{
	//定义变量:
	char killer = 0; //凶手
	//依次假定每个人是凶手:
	for (killer = 'a'; killer <= 'd'; killer++)
	//因为 a b c d 的ASCII码值是连着的,所以a+1==b,
	//以此类推,依次假定每个人是凶手,判断情况
	{
		//把4个情况列出来:
		if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
		//把4句话,4个情况列出来,情况1假3真,真为1,假为0,4种情况“相加”==3,符合就是凶手进行打印
		{
			//符合则进行打印
			printf("凶手是:%c\n", killer);
			break;
		}
	}
	return 0;
}

实现效果:

到此这篇关于C语言猜凶手的代码实现的文章就介绍到这了,更多相关C语言猜凶手内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言使用顺序表实现电话本功能

    C语言使用顺序表实现电话本功能

    这篇文章主要为大家详细介绍了C语言使用顺序表实现电话本功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • C++数组模拟之单链表与双链表和栈和队列的实现过程

    C++数组模拟之单链表与双链表和栈和队列的实现过程

    这篇文章主要介绍了C++数组模拟之单链表与双链表和栈和队列的实现过程,了解内部原理是为了帮助我们做扩展,同时也是验证了一个人的学习能力,如果你想让自己的职业道路更上一层楼,这些底层的东西你是必须要会的,跟随下文来具体了解吧
    2023-02-02
  • C语言结构体简单入门讲解

    C语言结构体简单入门讲解

    这篇文章主要介绍了C语言结构体简单入门讲解,本文讲述了结构体的基本定义和操作,讲解了几个比较实用的函数和案例,希望对你有所帮助
    2021-06-06
  • C语言实现简单弹跳小球

    C语言实现简单弹跳小球

    这篇文章主要为大家详细介绍了C语言实现简单弹跳小球,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C语言超详细i讲解双向链表

    C语言超详细i讲解双向链表

    在实际生活中,我们用到的最多的两种链表结构就是单链表和双向带头链表,上一篇已经介绍了单链表的实现以及一些应用,接下来我为大家详细介绍一下双向链表,以及一些链表oj题
    2022-05-05
  • c++中new和delete操作符用法

    c++中new和delete操作符用法

    c++中new和delete运算符是用于动态分配和撤销内存的运算符,下面是示例,大家参考使用吧
    2014-04-04
  • C语言的数组学习入门之对数组初始化的操作

    C语言的数组学习入门之对数组初始化的操作

    这篇文章主要介绍了C语言的数组学习入门之数组初始化的操作,是C语言入门学习中的基础知识,需要的朋友可以参考下
    2015-12-12
  • 深入了解c++数组与指针

    深入了解c++数组与指针

    这篇文章主要介绍了c++数组与指针的相关资料,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下
    2020-08-08
  • C++二叉搜索树模拟实现示例

    C++二叉搜索树模拟实现示例

    本文主要介绍了C++二叉搜索树模拟实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • C++多态虚析构和纯虚析构的实现

    C++多态虚析构和纯虚析构的实现

    本文主要介绍了C++多态虚析构和纯虚析构的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09

最新评论