我对编程很陌生。我写了一个小程序(来自CS50课程,第2周),该程序检查三角形是否有效。
#include <stdio.h>
#include <cs50.h>
void valid_triangle(int side[]);
int main(void)
{
int side[3];
for (int i = 0; i < 3; i++)
{
side[i] = get_int("Side %i: ", i+1);
}
valid_triangle(side[]);
}
void valid_triangle(int side[])
{
if (side[0] + side[1] >= side[2] || side[0] + side[2] >= side[1] || side[1] + side[2] >= side[0])
{
printf("true\n");
}
else
{
printf("false\n");
}
}
问题是我在这里(我调用该函数的最后一行)不断收到“预期表达式”错误:
for (int i = 0; i < 3; i++)
{
side[i] = get_int("Side %i: ", i+1);
}
valid_triangle(side[]);
我该如何解决? 先感谢您!
答案 0 :(得分:0)
以valid_triangle(side);
的身份调用函数
答案 1 :(得分:0)
正如其他人所述,将[]
传递到side
时不需要valid_triangle
。当将数组传递给函数时,我们实际上并不是将整个数组传递给函数,而是告诉函数在哪里可以找到数组。当您编写valid_triangle(side)
时,实际上是将指针(在内存中的位置)传递给数组的第一个元素,然后接收函数根据我们传递的变量知道如何/在何处访问数组。
#include <stdio.h>
#include <cs50.h>
void valid_triangle(int side[]);
int main(void)
{
int side[3];
for (int i = 0; i < 3; i++)
{
side[i] = get_int("Side %i: ", i+1);
}
valid_triangle(side);
}
void valid_triangle(int side[])
{
if (side[0] + side[1] >= side[2] || side[0] + side[2] >= side[1] || side[1] + side[2] >= side[0])
{
printf("true\n");
}
else
{
printf("false\n");
}
}