-1

我是编程新手,我正在做 CS50。我在三角形问题(第 2 周 - 数组 - 函数)上的积极性被卡住了。

这是我的代码:

#include <cs50.h>
#include <stdio.h>
#include <stdbool.h>

bool valid_triangle(float x, float y, float z);

int main(void)
{
    float x = get_float("Side 1: ");
    float y = get_float("Side 2: ");
    float z = get_float("Side 3: ");

    if (x <= 0 || y <=0 || z <=0)
    {
        return false;
    }

    if (valid_triangle == true)
    {
        printf("This is a valid triangle");
    }
    else
    {
        printf("This is not a valid triangle");
    }
}


bool valid_triangle(float x, float y, float z)
{
    if ((x + y <= z) || (x + z <= y) || (y + z <= x))
    {
        return false;
    }
    else
    {
        return true;
    }
}

我收到错误:

comparison between pointer and integer ('bool (*)(float, float, float)' and 'int') [-Werror,-Wpointer-integer-compare]
    if (valid_triangle == true)
        ~~~~~~~~~~~~~~ ^  ~~~~

谁能帮我解决我做错了什么?

4

1 回答 1

1

谢谢@Mark Benningfield

真的只是缺少在 main 中调用函数......

这样,我只是在 main 上添加了

bool isValid = valid_triangle(x, y, z);

调用该函数,并更改

    if (isValid == true)
    {
        printf("This is a valid triangle\n");
    }
    else
    {
        printf("This is not a valid triangle\n");
    }
于 2021-09-24T20:54:35.047 回答