• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンパイルエラーの原因と対策について。)

コンパイルエラーの原因と対策

このQ&Aのポイント
  • 以下のプログラムで使用されている関数の宣言が足りないため、コンパイルエラーが発生しています。
  • 関数の宣言を正しく追加することでコンパイルエラーを解消することができます。
  • また、プログラムの実行に必要なライブラリやヘッダーファイルも正しくインクルードする必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8653/18507)
回答No.2

宣言部 double f1(double t1,double a0,double a1,double a2,double a3); 定義部 double f1(double t1,double a0,double a1,double a2,double a3) { double r; r=-bet*a0*a2; return r; } のように別々の変数にしてください。他の関数も同様です。 もちろん double f1(double t1,double a[]); のようにする事もできますが、その場合には関数を使用するところ for (i=0;i<4;i++) k2[i]=dt*pf[i](t1+dt/2.0,a[0]+k1[0]/2.0,a[1]+k1[1]/2.0,a[2]+k1[2]/2.0,a[3]+k1[3]/2.0); を書き換える必要があり、面倒です。

fujiya1234
質問者

お礼

いつもありがとうございます。 ご指摘から、なんとかエラー表示は消えたのですが、 出力結果がおかしく、それに関して新しく質問させていただきますのでぜひご回答ください。 よろしくおねがいします。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>原因と改良すべき点をご教示お願いします。 原因はC言語の基礎の勉強不足です。 double f1(double t1,double a[0],double a[1],double a[2],double a[3]) の「double a[0],double a[1],double a[2],double a[3]」は、どういう意図で書かれてるんでしょうか。 >字数制限でエラー内容は書けませんがご希望があれば補足いたします。 エラーメッセージ部分だけ抜き出して書くということはできないんですか?

fujiya1234
質問者

お礼

おっしゃるとおりCを初めて2ヶ月ほどで勉強不足です。 他の方のご指摘から、なんとかエラー表示は消えたのですが、 出力結果がおかしく、それに関して新しく質問させていただきますのでぜひご回答ください。 よろしくおねがいします。

すると、全ての回答が全文表示されます。
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

a.c:7:40: error: redefinition of parameter ‘a’ double f1(double t1,double a[0],double a[1],double a[2],double a[3]); ^ 仮引数の変数名 `a' が重複してます。しかも a[0] てなんですか? 関数の実体を見るに double f1(double t1,double a[]); としたいのでは無いですか? 今一なにをやりたいのか判然としませんが。

fujiya1234
質問者

お礼

関数の宣言に関して勘違いをしておりました。 他の方のご指摘から、なんとかエラー表示は消えたのですが、 出力結果がおかしく、それに関して新しく質問させていただきますのでぜひご回答ください。 よろしくおねがいします。

すると、全ての回答が全文表示されます。

関連するQ&A