- 已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
昨天关门了。
社区正在审查是否从昨天开始重新讨论这个问题。
Improve this question
我在做一个简单的cs50课程练习来验证一个三角形。我创建了一个函数valid_triangle并将其原型化,但是当我使用调试器时,我的函数(valid_triangle)没有被使用,我不明白为什么。我希望得到任何帮助。谢谢。
- edit:经过简单的回顾,实际上我的函数正在被调用,但无论输入如何总是返回true。**我尝试使用50,1,1,它应该返回false,但它返回了true。
可能功能不对...
#include <cs50.h>
#include <stdio.h>
//number of sides of the triangle
const int N = 3;
//validate triangle
bool valid_triangle(int side[]);
int main(void)
{
//get sides
int side[N];
for (int i = 0; i < N; i++)
{
do
{
side[i] = get_int("side lenght: ");
}
while(side[i] < 0);
}
//print result
if (valid_triangle(side) == true)
{
printf("This is a valid triangle\n");
}
else
{
printf("This is NOT a valid triangle\n");
}
}
//validade triangle
bool valid_triangle(int side[])
{
if (side[0] < (side[1] + side[2]) || side[1] < (side[0] + side[2]) || side[2] < (side[1] + side[0]))
{
return true;
}
else
{
return false;
}
}
它编译
我尝试将"if(valid_triangle(side)== true)"的语法更改为"if(valid_triangle(side [])== true)"或"if(valid_triangle(int side [])== true)",但没有成功。
1条答案
按热度按时间3yhwsihp1#
我试用了你的代码,和你一样,在测试中得到了不正确的结果。实际上,你的侧面比较应该检查"大于"而不是"小于"。
以下声明:
应为:
你最有可能检查的是任何一边不大于其他两边的总和。
当我修改测试时,下面是一些示例终端输出。
尝试一下,看看它是否符合你项目的精神。