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
穷举以上所有可能的情况,代入上述表达式中进行推理运算,若假设的情况使上述表达式的结果均为真,则假设情况就是正确的结果。

求解!!!

#include "stdio.h"
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 语言逻辑运算符在开发中必不可少,都比较简单;

二.猜你喜欢

  1. 安装 Visual Studio
  2. 安装 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸载
  4. Visual Studio 2003/2015 卸载
  5. 设置 Visual Studio 字体/背景/行号
  6. C 语言 Hello World
  7. C 语言代码注释
  8. C 语言数据类型 / 变量类型
  9. C 语言变量声明和定义
  10. C 语言格式控制符/占位符
  11. C 语言 printf 函数
  12. C 语言条件判断 if / else
  13. C 语言逻辑运算符

未经允许不得转载:猿说编程 » C 语言逻辑运算符

本文由博客 - 猿说编程 猿说编程 发布!

以上是关于C语言逻辑推理与判断的题的主要内容,如果未能解决你的问题,请参考以下文章

c语言中if(c=a)是否相当于if(1),因为=不是判断符号?

C语言中啥是逻辑表达式,啥是关系表达式。举几个例子

C语言逻辑运算符和if语句

逻辑判断与运算符

c语言中逻辑或怎么用

C语言逻辑运算符和if语句