我在我的代码中有返回真或假的布尔值的规范,但是我不知道如何打印依赖于它是真还是假。我有一些由用户和布尔值提示的浮点数来确定它是真还是假。我如何使用这两个数据来打印依赖于它呢?
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;
}
我尝试了一个带bool的if条件,但没有编译。
3条答案
按热度按时间xoefb8l81#
这一点:
尝试将
valid_triangle
函数重新赋值给整数1。这不会编译;函数名的行为类似于常量,不能赋值。您需要以下内容:
上面的代码 * 调用 *
valid_triangle()
函数,将从用户那里收集的三个值传递给它。如果返回值为非零(true
为非零),if
将执行它的主体,否则将跳过它。请注意,我(强烈)建议不要对布尔值进行显式比较,因为比较运算符本身只会产生一个布尔值,这让我感到痛苦的递归。
fnvucqvd2#
valid_triangle函数需要3个参数x,y,z。您必须将从用户处获取的值传递给该函数。
8nuwlpux3#
由于其他问题已经展示了纠正代码中错误的方法,我将尝试回答您的主要问题:
可以是一种简洁而有效的方式,以用户友好的方式打印布尔结果。
因为它避免了需要
printf(3)
来替换上述正确字符串的参数替换。