c中的IF或布尔语句

时间:2014-10-15 09:56:35

标签: c if-statement boolean

我一直困扰着一个问题。我正在尝试编写允许用户输入值的代码,如果两个值相同则应显示“它是一个完美的正方形”的输出,但是如果显示三个值,那么“它是一个完美的立方体”应该显示。到目前为止,我对我所做的事情感到有些困惑,但是当我确实输入输入值时,我会收到正确的答案,或者它会显示我的所有printf输出。我似乎无法理解这种情况,并且可以在理解中使用一些帮助。如何安排它。目前我正在用C语言编写,我是一名初学程序员,我已经包含了迄今为止我所做的屏幕截图,如果有人能告诉我哪里出错了,那将非常有用。

到目前为止我的代码

    #include <stdio.h>

int main (void)

{

    int Height;
    int Width;
    int Depth;

    printf("Please insert value\n");
    scanf("%d%d%d", &Height, &Width, &Depth);

    if(Height == Width)
    {
        printf("It's a square cuboid\n");
    }
    else if(Height == Depth)
    {
        printf("It's a square cuboid\n");
    }
    else if(Width == Depth)
    {
        printf("It's a square cuboid\n");
    }
}

谢谢Hadleigh

3 个答案:

答案 0 :(得分:2)

您可以使用&&||运算符链接布尔语句。例如,如果你想检查它是否是一个完美的立方体:

//If Height equals width AND height equals depth
if(Height == Width && Height == Depth)
{
    printf("Perfect Cube!");
}

或者,如果你想检查它是否是一个完美的方块:

if(Height == Width && Depth == 0)
{
    printf("Perfect Square!");
}

所以要把这些全部放在一起,一旦你验证了你的输入,你只需要弄清楚哪些检查做了什么。

int Height;
int Width;
int Depth;

printf("Please insert value\n");

if(scanf("%d%d%d", &Height, &Width, &Depth) != 3)
{
    printf("Wrong number of inputs");
    return -1;
}

//this            AND  this
if(Height == Width && Depth == 0)
{
    printf("Perfect Square!");
}//     this           AND   this
else if(Height == Width && Height == Depth)
{
    printf("Perfect Cube!");
}//     This             OR  this           OR this           then...
else if (Height == Width || Height == Depth || Width == Depth)
{
    printf("Square-faced cuboid!");
}

答案 1 :(得分:1)

  1. 您应该测试scanf()返回3,然后依靠变量来获得正确的值。
  2. 您的所有printf()语句都打印相同的内容,因此无法查看输出是否正常。

答案 2 :(得分:0)

感谢您的快速回复,我现在明白它应该如何布局并且完美无缺。我只有一个快速跟进的问题。我如何在每个if语句行中引入乘法,以便将Height * Width * Depth计算在一起以获得音量。我想为每一行做这个。我已经插入了我的代码的副本,只是想真正添加它。

{

int Height;
int Width;
int Depth;


scanf("%d%d%d", &Height, &Width, &Depth );

if(Height == Width && Depth >=0){
printf("It's a square cuboid\nThe volume is %d ");

}

if(Height == Depth && Width >= 0)
printf("It's a square cuboid\n ");

if(Width == Depth && Height >= 0)
printf("It's a square cuboid\n");

if(Height == Width && Height == Depth)
printf("It's a perfect cube\n ");


}

由于 哈德利