c 推测题型

原创 2018年04月15日 14:13:07

例1:

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

A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。

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

数学逻辑:由于只有一个人说了假话,其余人都是真话。

  1. 假设A是嫌疑犯,那么只有A,B,C说了假话,假设不成立。
  2. 假设B是嫌疑犯,那么B,C均是假话,假设不成立。
  3. 假设C是嫌疑犯,那么A,B,D说了真话,C说了假话,假设成立
  4. 假设D是嫌疑犯,那么B,D均是假话,假设不成立

综上:嫌疑犯是C

C语言逻辑:

定义一个字符型变量"thisman"用于存放嫌疑犯的名称,嫌疑犯有可能是A,B,C,D四个中的一个,所以用循环来表示:

又已知三个人说了真话,一个人说了假话,所以三个人说的话相加为3即为真;

代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	char thisman;     //存放嫌疑人的变量
	for (thisman = 'A'; thisman <= 'D'; thisman++)
	{
		if (((thisman != 'A') + (thisman == 'C') + (thisman == 'D') + (thisman != 'D')) == 3)
			printf("thiman is %c\n", thisman);
	}
	system("pause");
	return 0;
}

代码运行如下:


例2:

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;

比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。

分析:

程序应满足以下条件:五位选手说的话仅一半正确且名次不相同;

用A,B,C,D,E,表示五位选手,他们均有可能拿第一到第五五个名次,所以应该有五次循环,

代码如下:

#define _CRT_SERCUE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int A, B, C, D, E;
	for (A = 1; A <= 5; A++)
	{
		for (B = 1; B <= 5; B++)
		{
			for (C = 1; C <= 5; C++)
			{
				for (D = 1; D <= 5; D++)
				{
					for (E = 1; E <= 5; E++)
					{
							if ((A + B + C + D + E == 15) && (A*B*C*D*E == 120)
								&& ((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\n", A, B, C, D, E);
							}
					}
				}
			}
	}
}
	system("pause");
	return 0;
}

代码运行如下:




c语言第三次练习题

c语言第三次练习题
  • qq_40477151
  • qq_40477151
  • 2017-11-29 17:47:27
  • 199

MR推测执行

mapred.map.tasks.speculative.execution boolean true 如果任务运行变慢,该属性决定了是否要启动一个map任务的另外一个实力 mapred.redu...
  • qiezikuaichuan
  • qiezikuaichuan
  • 2015-09-28 16:31:10
  • 731

测试相关理解(五)错误推测法

1、定义 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例...
  • hello_myhome
  • hello_myhome
  • 2015-06-25 10:09:58
  • 1975

hive推测执行(speculative execution)

前几天在解决同事一个Hive Bug的时候,需要关闭task推测执行(speculative execution), 在网上查了资料后有人提到需要 set hive.mapred.map.task...
  • lalaguozhe
  • lalaguozhe
  • 2013-06-11 22:02:00
  • 3296

Hadoop之推测执行

推测执行(Speculative Execution)是指在集群环境下运行MapReduce,可能是程序Bug,负载不均或者其他的一些问题,导致在一个JOB下的多个TASK速度不一致,比如有的任务已经...
  • qianshangding0708
  • qianshangding0708
  • 2015-08-13 16:55:32
  • 4153

[spark] spark推测式执行

推测任务是指对于一个Stage里面拖后腿的Task,会在其他节点的Executor上再次启动这个task,如果其中一个Task实例运行成功则将这个最先完成的Task的计算结果作为最终结果,同时会干掉其...
  • UUfFO
  • UUfFO
  • 2017-10-19 20:14:49
  • 1065

错误推测法-常见测试点

  • 2013年05月08日 12:12
  • 16KB
  • 下载

错误推测法

错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例方法。     错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,,根据他们选择测试用...
  • szstc
  • szstc
  • 2007-03-28 11:18:00
  • 699

测试用例设计白皮书--错误推测方法

 测试用例设计白皮书--错误推测方法Author: Vince      来源:http://blog.csdn.net/vincetest一.    方法简介1.         定义:基于经验和直...
  • vincetest
  • vincetest
  • 2007-01-08 20:01:00
  • 16870

Hadoop推测执行(以空间换取时间)

1. 背景 Speculative Task,又叫推测式任务,是指在分布式集群环境下,因为程序bug,负载不均衡或者资源分布不均,造成同一个job的多个task运行速度不一致,有的task运行速度明...
  • guoyunyuhou
  • guoyunyuhou
  • 2015-01-15 15:59:42
  • 685
收藏助手
不良信息举报
您举报文章:c 推测题型
举报原因:
原因补充:

(最多只允许输入30个字)