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は意味がありません。

そのような短いマクロ名を定義しないでください#defineNグローバル定数が意図されているすべてのコードでのみ使用するようにしてください。

また、p配列をパラメータとして渡すにはp、 ではなくとだけ言ってくださいp[]

于 2012-04-12T05:43:07.370 に答える
1
#define N 5

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

N を 5 に #define したため、前処理後は次のようになります。

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

明らかにそれは間違っています。また、関数宣言はセミコロンで終了する必要があります。

于 2012-04-12T05:43:22.593 に答える