3

Visual C ++でエラーが発生し、非常に苦労しています。

エラーはエラーc2143の読み取りです:構文エラー:「定数」の前に「)」がありません

私のコード行は次のとおりです。

coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) 2 * depth); 

ファイルの先頭に#includeがあり、floor(double)関数を定義する必要があります。

変数のもう少し説明。

doubledepthは、この行を見つけることができるクラスのメンバー変数です
。intiは、増分インデックス値です。
doubletは増分値です。

それらが行うことは本当に重要ではありませんが、3つすべてがすでに基本型の変数として定義されていることを明確にしたいと思います。

すべての括弧が一致していることを確認しました。コンパイラが何を「定数」で参照しているのか、私はちょっと戸惑っています。何か案は?

4

6 に答える 6

6

これがコンパイラーからのエラーと同じかどうかはよくわかりませんが、2番目の「2」の前に「*」記号を付けて、次のようにする必要があります。

coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) 2 * depth);

これになります:

coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) * 2 * depth);
于 2009-04-06T07:13:39.447 に答える
6

他のポスターは、ステートメントの実際のエラーを示していますが、それを複数のサブステートメントに分割して、数学的に何をしようとしているのかをより明確に示してください。 't!

于 2009-04-06T07:21:08.320 に答える
5
coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) (the problem is here) 2 * depth);
于 2009-04-06T07:12:31.120 に答える
2

あなたは正しい答えを持っていますが、どのようにしてそれに到達するべきだったかを説明します.

長い式で見つからないエラーに直面した場合は、見つかるまで式を 1 つずつ分解してください。

この場合:

coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) 2 * depth);

になります:

firsthalf = (1 - (2 * depth));
secondhalf = ((t - floor( t + 0.5 ) + 1 ) 2 * depth);   // Error appears on this line
coefficient[i] = firsthalf + secondhalf;

これにより、最初の部分がエラーの原因から除外されます。

次の試行:

exprA = (t - floor( t + 0.5 ) + 1 );
exprB = exprA * 2;
exprC = exprB * depth;   // Hmm.... this all worked.  Start putting it back together.
secondhalf = exprC;

最終試行:

exprA = (( MY_TEST_CONSTANT ) 2 * depth);   // Error now becomes obvious.
于 2009-06-11T21:59:48.790 に答える
1

係数[i]=(1-(2 *深さ))+((t-床(t + 0.5)+ 1)2(2はここで何をしているのですか?) *深さ);

于 2009-04-06T07:15:34.730 に答える
1

列挙型を宣言するときに同様のエラーに直面しました。これは、enum 定数の 1 つがコードの別の場所でも宣言されていたためです。

于 2011-10-28T06:39:13.790 に答える