【发布时间】:2020-12-16 19:10:03
【问题描述】:
我对这段代码有疑问,因为我似乎无法找到问题所在?这是我试图解决的问题: - 声明并编写一个名为 valid_triangle 的函数,该函数将三个表示三角形三边长度的实数作为参数,并根据这三个长度是否输出真或假可以做一个三角形。
- 关于三角形的以下规则:
- 三角形只能有正长度的边。
- 三角形任意两条边的长度之和必须大于第三条边的长度。
//includes
#include <stdio.h>
#include <cs50.h>
bool valid_triangle(float x, float y, float z);
int main (void)
{
float x = get_float("x:");
float y = get_float("y:");
float z = get_float("z:");
bool w = valid_triangle(x, y, z);
}
bool valid_triangle(float x, float y, float z)
{
// only positive sides
if (x <= 0 || y <= 0 || z <= 0)
{
return false;
printf("false\n");
}
// sum of the lengths of any two sides of the triangle must be greater than the length of the third side.
else if (x + y < z || x + z < y || y + z < x)
{
return false;
printf("false\n");
}
else
{
return true;
printf("True\n");
}
return 0;
}
【问题讨论】:
-
嗯,
return语句后面还有语句。这可能是你的问题吗?? -
你永远不会对
w变量做任何事情。 -
return语句立即返回。 -
我想问题是你看不到任何打印。这已在答案中得到解决,但请记住,您在提问时应该更加具体。 (另外,如果答案解决了您的问题,请确保您接受它!)
-
关于`return false; printf("false\n");` 对
printf()的调用将永远不会发生,因为return将已经退出该函数。建议在return语句之前调用printf()
标签: c return boolean cs50 function-definition