我正在学习如何创建和使用函数。我的代码没有编译,但我似乎无法弄清楚我做错了什么。
这是我的代码:
#include <stdio.h>
#include <cs50.h>
#include <stdbool.h>
bool tri (double x, double y, double z);
int main(void)
{
double x = get_double("Give:");
double y = get_double("Another:");
double z = get_double("Now:");
bool tri (x, y, z);
}
bool tri (double x, double y, double z)
{
if (x<1 || y<1 || z<1)
{
return false;
}
if (x+y > z && y+z > x && z+x > y)
{
return true;
}
else
{
return false;
}
}
当我尝试编译此代码时,出现以下错误:
error: a parameter list without types is only allowed in a function definition
bool tri (x, y, z);
^
答案 0 :(得分:2)
您编写的内容被编译器识别为function prototype。所以它告诉你应该有这样的东西,类型:
bool tri(double x, double y, double z);
在这里,您不需要函数原型,而是想要调用您的函数。 调用函数时无需指定返回类型。
所以简单地这样做:
tri(x, y, z);
...而不是bool tri(x, y, z);
。
答案 1 :(得分:1)
下面建议进行一些小的更改 - 最值得注意的是,您将函数的返回值放在顶部声明的名为bool
的{{1}}中,然后在结尾打印出{的值{1}}和val
,这是您的函数返回的真或假。
请注意,您需要使用您编写的函数以及返回值的内容,这就是您需要x,y,z
之类的内容来捕获返回值的原因,然后您可以打印出来...
val