Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带有3个条件的If语句(triangleExists)_C++_If Statement_Conditional Statements - Fatal编程技术网

C++ 带有3个条件的If语句(triangleExists)

C++ 带有3个条件的If语句(triangleExists),c++,if-statement,conditional-statements,C++,If Statement,Conditional Statements,检查三角形是否存在:它的每一条边都小于其他两条边的和 我尝试了很多选择: float a=3, b=15, c=7; //its still taking 'y' bool triangleExists(float a, float b, float c) { if ((a < (b + c)) || (b < (a + b)) || (c < (a + b))) { std::cout << "y" << std::en

检查三角形是否存在:它的每一条边都小于其他两条边的和

我尝试了很多选择:

float a=3, b=15, c=7; //its still taking 'y'
bool triangleExists(float a, float b, float c)
{
    if ((a < (b + c)) || (b < (a + b)) || (c < (a + b)))
    {
        std::cout << "y" << std::endl;
        return true;
    }else 
        std::cout << "n" << std::endl;;
        return false;
}
我尝试过的选项也尝试过使用&&标记:

如果a 如果a 如果a 如果a
我可能错过了一些简单的东西。如果你能帮忙,我会很高兴的。

在你的中等状态下,你有b加上@Zackary Murphy已经指出的打字错误,你的逻辑有一个更根本的问题

特别是,仅当三个条件都通过时,函数才应返回true。将中间项更正为b 例如:

#include <iostream>

bool triangleExists(float a, float b, float c)
{
    if ((a < (b + c)) || (b < (a + c)) || (c < (a + b)))
    {
        std::cout << "y" << std::endl;
        return true;
    }
    else
        std::cout << "n" << std::endl;;
    return false;
}

int main() {
    float a = 3, b = 4, c = 500; //its still taking 'y'

    triangleExists(a, b, c);
}
。。。打印y,即使3、4和500的边不能形成三角形


要获得正确的行为,可以将| |改为&&即从或改为和。或者,您可以反转测试并反转结果,即如果a>b+c | | b>a+c | c>a+b,则返回false。否则,返回true。

问题和问题是什么?另外,当它的每一条边小于另外两条边的和时,请提供一个。必须使用&&logical AND运算符,而不是| | logical OR。哈哈哈哈哈哈哈,谢谢。昨晚我真的很累。是的,我昨天已经这样做了这是我的第一次尝试,但当我尝试时,它只是抓住了每一个可以帮助解决的问题。无论如何,谢谢你的回复。