error: a parameter list without types is only allowed in a function definition
error: a parameter list without types is only allowed in a function definition
我正在学习如何创建和使用函数。我的代码无法编译,但我似乎无法弄清楚我做错了什么。
这是我的代码:
#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);
^
你的问题
您编写的内容被您的编译器识别为 function prototype。所以它告诉你你应该有这样的东西,类型:
bool tri(double x, double y, double z);
解决方案
在这里,您不需要函数原型,而是想要调用您的函数。 调用函数时不需要指定return类型。
所以只需这样做:
tri(x, y, z);
...而不是 bool tri(x, y, z);
.
下面建议进行一些小的更改 - 最值得注意的是,您将函数的 return 值放入顶部声明的名为 val
的 bool
中,然后打印出来最后 x,y,z
和 val
的值是真还是假 return 由您的函数编辑。
请注意,您需要使用您编写的函数和 return 值,这就是为什么您需要 val = tri (x, y, z);
来捕获 returned 值的原因,您然后可以打印出来...
#include <stdio.h>
#include <cs50.h>
#include <stdbool.h>
bool tri (double x, double y, double z);
int main(void)
{
bool val;
double x = get_double("Give:");
double y = get_double("Another:");
double z = get_double("Now:");
val = tri (x, y, z);
printf("x=%g, y=%g, z=%g\n",x,y,z);
printf("%s", val ? "true" : "false");
return 0;
}
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;
}
}
我正在学习如何创建和使用函数。我的代码无法编译,但我似乎无法弄清楚我做错了什么。
这是我的代码:
#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);
^
你的问题
您编写的内容被您的编译器识别为 function prototype。所以它告诉你你应该有这样的东西,类型:
bool tri(double x, double y, double z);
解决方案
在这里,您不需要函数原型,而是想要调用您的函数。 调用函数时不需要指定return类型。
所以只需这样做:
tri(x, y, z);
...而不是 bool tri(x, y, z);
.
下面建议进行一些小的更改 - 最值得注意的是,您将函数的 return 值放入顶部声明的名为 val
的 bool
中,然后打印出来最后 x,y,z
和 val
的值是真还是假 return 由您的函数编辑。
请注意,您需要使用您编写的函数和 return 值,这就是为什么您需要 val = tri (x, y, z);
来捕获 returned 值的原因,您然后可以打印出来...
#include <stdio.h>
#include <cs50.h>
#include <stdbool.h>
bool tri (double x, double y, double z);
int main(void)
{
bool val;
double x = get_double("Give:");
double y = get_double("Another:");
double z = get_double("Now:");
val = tri (x, y, z);
printf("x=%g, y=%g, z=%g\n",x,y,z);
printf("%s", val ? "true" : "false");
return 0;
}
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;
}
}