ページ 11

数値計算(コンパイルエラー)

Posted: 2009年8月04日(火) 10:44
by Eda
数値計算によってある移動距離を計算します。
以下はそのプログラムソースの一部です
#include <stdio.h>
#include <math.h>
#define B=3600
#define Q=10
double main(void)
{
	int C0,LA,LB,i,PN,TH,IT,Irep,Tmax,SRTM,DT,SRT,M1,JP,PB,PN1,IK0,JJ,start,IK
	double N,GZ,VJV,X,X0,GZ0
	double MV,DCAL,X0,JVINT,VJVT[b],XT[b],VFLUX[b]
	double U0,H,K,KD0[Q],KD1[Q],KD2[Q],KD3[Q],KD4[Q],KV0[Q],KV1[Q],KV2[Q]
	double R0[Q],R01[Q],R2[Q],R3[Q],R4[Q],R5[Q],NL[Q],NLC[Q],NH[Q],NHC[Q],H[Q],JPN[Q]


生じたエラーは以下のとおりです
Error E2141 ****.c 8: Declaration syntax error in function main
Warning W8070 ****.c 174: Function should return a value in function main
この8行目で生じるエラーを解決する方法を教えて頂けませんか?
使用したコンパイラはbccです。

なお、それぞれの行末に;がついてませんが、これを付けると
Error E2188 ****.c 10: Expression syntax in function main
Error E2290 ****.c 174: Array bounds missing ] in function main
というエラーが新しく付け加わるため;は付けていません。

Re:数値計算(コンパイルエラー)

Posted: 2009年8月04日(火) 10:55
by MNS
確実ではありませんが、
Declaration syntax error in function main
→mainの返り値をintにする
Function should return a value in function main
→これは値を返していないから

あと、定数がおかしいです
#define B=3600
#define Q=10
これは、
#define B 3600
#define Q 10
こうすべきです。

そうすれば、行末に;をつけても大丈夫なはずです。

Re:数値計算(コンパイルエラー)

Posted: 2009年8月04日(火) 12:08
by Eda
MNSさん、返信ありがとうございます。

=をつけなければ行末に;を付けなくても良いとは知りませんでした。

ありがとうございました。

Re:数値計算(コンパイルエラー)

Posted: 2009年8月04日(火) 19:12
by MNS
いえ、行末に;は付けなければいけません。
そもそも、#defineは
#define 定数名 値
となるので、=を付けるとおかしなことになります。
ですから、mainの戻り値をintにし、#defineの=を除いて、
行末にセミコロンをつければ、コンパイルエラーは出ないはずです。

Re:数値計算(コンパイルエラー)

Posted: 2009年8月06日(木) 10:37
by Eda
重ね重ねありがとうございます。

プログラムは大学で少し習っただけなので
このように親切に教えていただくと勉強がはかどります。