C语言逻辑推理与判断的题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言逻辑推理与判断的题相关的知识,希望对你有一定的参考价值。
题目:
三对情侣参加婚礼,三个新郞为A、B、C,三个新娘为X、Y、Z。有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人听后知道他们在开玩笑,全是假话。请编程找出谁将和谁结婚。
要求答案输出:
X will marry to B.
Y will marry to C.
Z will marry to A.
题目中的信息提示:
将A、B、C三人用1,2,3表示,将X和A结婚表示为“X=1”,将Y不与A结婚表示为“Y!=1”。按照题目中的叙述可以写出表达式:
x!=1 A不与X结婚
x!=3 X的未婚夫不是C
z!=3 C不与Z结婚
题意还隐含着X、Y、Z三个新娘不能结为配偶,则有:
x!=y且x!=z且y!=z
穷举以上所有可能的情况,代入上述表达式中进行推理运算,若假设的情况使上述表达式的结果均为真,则假设情况就是正确的结果。
求解!!!
void main()
int x,y,z;
for(x=1;x<=3;x++)
for(y=1;y<=3;y++)
for(z=1;z<=3;z++)
if(x!=1&&x!=3&&z!=3&&x!=y&&y!=z&&z!=x)
printf("X will marry to %c\n",'A'-1+x);
printf("Y will marry to %c\n",'A'-1+y);
printf("Z will marry to %c\n",'A'-1+z);
追问
哇塞!!!还厉害啊!!!能不能详细说一下这类C语言题的做题思路?我第一次做这种题......
参考技术A #include<stdio.h>char xinlang[3]='A','B','C';
void main()
int x,y,z;
for(x=1;x<4;x++)
for(y=1;y<4;y++)
if(x==y) continue;
z=6-x-y;
if(x!=1&&x!=3&&z!=3)
printf("X will marry to %c\n",xinlang[x-1]);
printf("Y will marry to %c\n",xinlang[y-1]);
printf("Z will marry to %c\n",xinlang[z-1]);
C语言逻辑运算符
目录
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门
一.逻辑运算符
在C
语言 if
/ else
条件判断中,一个 if
语句的条件判断可以由多个表达式构成,举个例子: 何谓学霸?学霸 = 分数高 + 刻苦学习,两者缺一不可;
1.与运算 &&
与运算需要使用关键字符 &&
,表示将两个或者多个表达式连接成一个,所有表达式必须都为true
,整个表达式才为 true
,否则为 false
;
/************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言逻辑运算符
//@Time:2021/05/28 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/************************************************************************/
#include "stdafx.h"
#include <stdio.h>
int main()
{
//是否成绩好
bool bHeightScore = true;
//是否努力学习
bool bHardStudt = false;
if (bHeightScore && bHardStudt)
printf("成绩好并且努力学习,是学霸\\n"); //当bHeightScore 和 bHardStudt 同时为true才能执行
else
printf("不是学霸\\n");
printf("main函数结束!\\n");
return 0;
}
/*
输出结果:
不是学霸
main函数结束!
请按任意键继续. . .
*/
2.或运算 ||
或运算需要使用关键字符 ||
,表示将两个或者多个表达式连接成一个,任意一个表达式为 true
,整个表达式就为 true
;只有当所有表达为 false
的时候,整个表达式才为 false
;
/************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言逻辑运算符
//@Time:2021/05/28 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/************************************************************************/
#include "stdafx.h"
#include <stdio.h>
int main()
{
bool bHeightScore = true;
bool bHardStudt = false;
if (bHeightScore || bHardStudt)
printf("要么努力学习要么分数高,必然是学弱学神学霸其中之一\\n"); //当bHeightScore 和 bHardStudt 任意一个为true都能执行
else
printf("我是学渣\\n");
printf("main函数结束!\\n");
return 0;
}
/*
输出结果:
要么努力学习要么分数高,必然是学弱学神学霸其中之一
main函数结束!
请按任意键继续. . .
*/
3.非运算 !
非运算需要使用关键字符 !
,用于将单个表达式结果取反,
-
如果原表达式的结果为
false
,在表达式前面加上运算符!
结果取反之后就是true
; -
如果原计算结果是
true
,在表达式前面加上运算符!
结果取反之后就是false
;/*/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C 语言逻辑运算符
//@Time:2021/05/28 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/*/include “stdafx.h”
include <stdio.h>
int main()
{
bool bHeightScore = true;
bool bHardStudt = false;if (!bHeightScore) printf("我成绩不好\\n"); // 只有bHeightScore等于false才能执行,非运算!表示对结果取反 else printf("我成绩好\\n"); if (!bHardStudt) { // 只有bHeightScore等于false才能执行,非运算!表示对结果取反 printf("我不想努力了,有富婆吗?少奋斗三十年那种\\n"); } printf("我努力学习\\n"); printf("main函数结束!\\n"); return 0;
}
/*
输出结果:我成绩好
我不想努力了,有富婆吗?少奋斗三十年那种
main 函数结束!
请按任意键继续. . .
*/
C 语言逻辑运算符在开发中必不可少,都比较简单;
二.猜你喜欢
- 安装 Visual Studio
- 安装 Visual Studio 插件 Visual Assist
- Visual Studio 2008 卸载
- Visual Studio 2003/2015 卸载
- 设置 Visual Studio 字体/背景/行号
- C 语言 Hello World
- C 语言代码注释
- C 语言数据类型 / 变量类型
- C 语言变量声明和定义
- C 语言格式控制符/占位符
- C 语言 printf 函数
- C 语言条件判断 if / else
- C 语言逻辑运算符
本文由博客 - 猿说编程 猿说编程 发布!
以上是关于C语言逻辑推理与判断的题的主要内容,如果未能解决你的问题,请参考以下文章