【问题标题】:How to use the bool data type?如何使用 bool 数据类型?
【发布时间】:2022-11-07 16:25:37
【问题描述】:

我在我的代码中有返回 true 或 false 的 bool 的规范,但我不知道如何 printf 取决于它是 true 还是 false。 我有一些用户提示的浮点数和布尔值来确定它是真还是假。 我如何使用这两个数据来 printf 取决于?

bool valid_triangle(float x, float y, float z);
int main(void)
{
    float x;
    float y;
    float z;
    do
    {
        x = get_float("Enter a length: ");
    }
    while(x <= 0);
    do
    {
        y = get_float("Enter other length: ");
    }
    while(y <= 0);
    do
    {
        z = get_float("The last one: ");
    }
    while(z <= 0);
}
if(valid_triangle = 1)
{
    printf("It's a triangle");
}
bool valid_triangle(float x, float y, float z)
{
    if(x <= 0 || y <= 0 || z <= 0)
    {
        return false;
    }
    if((x + y <= z) || (x + z <= y) || (y + z <= x))
    {
        return false;
    }
    return true;
}

我尝试了一个带有布尔值的 if 条件,但没有编译。

【问题讨论】:

  • 请不要将文本作为图像发布,这会让一些可能能够提供帮助的人(比如我)很难阅读。
  • 您在任何功能之外都有if(valid_triangle = 1)
  • 也不要忘记如何称呼函数,仅仅因为它们返回 bool 值并不意味着您不必以正常方式调用该函数。也不要忘记=== 之间的区别。

标签: c++ c


【解决方案1】:

您的 valid_triangle 函数需要 3 个参数 x、y、z。您必须将从用户获取的值传递给函数。

if(valid_triangle(x, y, z) == true)
{
    printf("It's a triangle");
} else {
    printf("It's not a triangle");

}

【讨论】:

    【解决方案2】:

    这个:

    if(valid_triangle = 1)
    

    尝试将 valid_triangle 函数重新分配给整数 1。这不会编译;函数的名称表现得像常量,不能赋值。

    你需要类似的东西:

    if (valid_triangle(x, y, z))
    {
      printf("yay, got a valid triangle with sides %f, %f and %f!
    ", x, y, z);
    }
    

    以上来电valid_triangle() 函数,将您从用户那里收集的三个值传递给它。如果返回值非零(true 是),if 将执行其主体,否则将被跳过。

    请注意,我(强烈)建议不要对布尔值进行显式比较,因为比较运算符本身只会产生一个布尔值,这让我觉得递归很痛苦。我也不认为它更清楚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-23
      • 2021-04-07
      相关资源
      最近更新 更多