0

我的程序中不断出现以下编译错误。我想写一个使用数组的程序p[],它被传递给一个计算第n次多项式(下面设置为5)并返回值的函数。

我的错误如下:

poly.c:4:39: 错误:数字常量前应有 ';'、',' 或 ')'

poly.c:16:39: 错误: 数字常量前应有 ';'、',' 或 ')'

我的程序:

#include <stdio.h>
#define N 5

double eval(double p[], double x, int N)

int main()
{
    double p[N+1] = {0,1,2,3,4};
    double x;
    printf("what value of x would you like?: ");
    scanf("%lf", &x);
    p[N+1] = eval(p[], x, n);
    printf("%lf", p[N+1]);
}

double eval(double p[], double x, int N)
{
    double y;
    y = x^(p[N+1]);
    return y;
}
4

2 回答 2

6

预处理器完成后,您的代码如下所示:

double eval(double p[], double x, int 5)

所以;在那条线的末尾仍然有缺失,这5没有任何意义。

不要定义这么短的宏名称,也不要有形式参数名称也是#define. 确保只N在所有代码中使用全局常量。

此外,要将p数组作为参数传递,只需说p,而不是p[]

于 2012-04-12T05:43:07.370 回答
1
#define N 5

double eval(double p[], double x, int N)

由于您#defined N 为 5,因此经过预处理后,上图将如下所示:

double eval(double p[], double x, int 5)

显然这是错误的。函数声明也需要以分号结尾。

于 2012-04-12T05:43:22.593 回答