【解決方法】[Error] 「{」トークンの前に識別子または「(」が必要です


#include <stdio.h>
#include <stdlib.h>


float vsota(int a, int m, float sum); 
 {
  for(m=1; m<a; m++)
  {
   sum +=1./(m*(2.*m+1.)); 
  }
  return sum; 
 }
void main ()
{
 int m, a; 
 float sum; 
 printf("Stevilo clenov:"); 
 scanf("%d", &a); 
	
 printf("Vsota clenov je: %f", vsota((int)a, (int)m, (float)sum)); 
}

私が試したこと:

それはc ++にあります。 助けが必要です

解決策 1

セミコロン … 重要です。
これはそこにあるべきではありません:

C
float vsota(int a, int m, float sum); 
                                    ^
                                    |
 {
  for(m=1; m<a; m++)
  {

コーディング中に毎日、おそらく 1 日に何度も構文エラーが発生することを予期する必要があります。経験の豊富さに関係なく、誰もがそうです! 変数やキーワードのスペルを間違えることがあります。 文字列やコード ブロックを閉じるのを忘れることがあります。 猫があなたのキーボードの上を歩いて、とても奇妙なことをタイプすることがあります。 メソッド呼び出しに必要なパラメーターの数を忘れてしまうことがあります。

我々はすべての間違いを犯します。

そして、私たちは皆そうしているので、構文エラーを修正する必要があります。他の人が修正してくれるのを待つよりも、方法を学んで自分で修正する方がはるかに迅速です! したがって、エラー メッセージの読み方と、コンパイラが間違っていると言っていることに照らして記述されたコードを解釈する方法を学ぶことに少し時間を費やしてください。

だからこれを読んでください: 問題を解決するコードの書き方、初心者向けガイド パート 2: 構文エラー[^] – 次回コンパイル エラーが発生したときに役立つはずです。

また、構文エラー メッセージを理解するために少し時間を費やすことで、将来的に膨大な時間を節約できます。Chris からの返信を少なくとも 1/4 時間待っていた場合、電子メール システムによってさらに 10 分ほど追加された時間と、このサイトを見つけてアカウントを作成したら、質問を入力する必要がありました。 それらの読み方を知っていれば、その時間のかなりの部分を節約できた可能性があります!

私たちはあなたがそれらを修正するのを手伝いたくないと言っているのではありません – 私が書くつもりだったものを読んでいるために、私自身のエラーを見ることができないことがあります – しかし、構文エラーを修正することは仕事の一部です.あなたが業界で仕事を得ると、人々はあなたを少し奇妙に見るでしょう!

解決策 2

あなたのプログラムは、実際には C++ よりも C に見えます。
項の合計を計算しようとしているようです

1/(n * ( 2 * n + 1))

n = 1, 2, .., (a-1)

そうして vsota 関数は 1 つのパラメーターのみを取る必要があります。つまり、 a:

C
double vsota(int a)</code>

(私が使用したことに注意してください double、それはより良い選択です float ほとんどどこでも)
次に、それに応じて関数呼び出しを内部で変更する必要があります main、無駄なものも破棄する必要があります msum 変数。
つまらないので、準拠したものを使用することもお勧めします main 意味:

C
int main()
{
  //...
}

要約すると(以下も含む) グリフの修正):

C
#include <stdio.h>
#include <stdlib.h>


double vsota(int a)
{
  double sum = 0.0;

  for (int m = 1; m < a; ++m)
  {
    sum += 1.0 / (m * ( 2.0 * m  + 1.0 ));
  }
  return sum;
}

int main()
{
  int a;
  printf("Stevilo clenov: ");
  scanf("%d", &a);

  printf("Vsota clenov je: %f\n", vsota(a));
}

コメント

タイトルとURLをコピーしました