Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 编译错误-数值常量_C - Fatal编程技术网

C 编译错误-数值常量

C 编译错误-数值常量,c,C,我的程序中不断出现以下编译错误。我想写一个使用数组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() {

我的程序中不断出现以下编译错误。我想写一个使用数组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;
}

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

double eval(double p[], double x, int 5)
因此,仍然有人失踪;在那条线的尽头,那5条没有意义

不要定义这样短的宏名称,也不要有同样定义的正式参数名称。确保在所有表示全局常量的代码中只使用N

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

由于您将N定义为5,因此在预处理后,上面的内容如下所示:

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

显然这是错误的。函数声明也需要用分号终止。

N=5;然后N+1=6,那么你声明一个长度为6的数组,并用一个长度为5的文本数组初始化它。问题中给出了p[N+1],我不明白你的意思。@user1304516他说你声明p是一个由6个元素组成的数组,但你只将5个元素放入数组0,1,2,3和4.如何用分号声明函数?这不会产生更多的语法吗?@user1304516我不理解这个问题。好吧,你说我需要添加一个分号,我应该在哪里添加这个分号:\。对不起,我一点用都没有programming@user1304516函数声明之后。双倍evalbla,bla;。如果是函数定义,函数签名后面必须跟一个开口{,如果是函数声明,则后面必须跟一个分号。
double eval(double p[], double x, int 5)