C言語でのプログラミング初心者が遭遇しがちな問題の一つが、セミコロンの付け忘れによるエラーです。特に、数式や関数を記述する際に間違えてセミコロンを省略してしまうことがあります。この記事では、C言語のプログラムでセミコロンのエラーが発生する原因とその修正方法について解説します。
問題の概要とエラーの原因
質問者のプログラムでは、次のようなコードがあります。
#include
#include
void main(){
float sinsita,cossita,tansita,pi;
int i;
pi=3.14159265358979;
for(i=1;i<=360;i++){
sinsita=sin((i*pi)/180.0));
cossita=cos((i*pi)/180.0));
tansita=sinsita/cossita;
printf("%d度 %f %f %f",i,sinsita,cossita,tansita);
sinsita=cossita=0.0;
}
}
コードの中で、9行目の`sin()`と`cos()`の関数呼び出しの後にある閉じ括弧 `)` の後にセミコロン `;` を追加していないことが原因で、コンパイルエラーが発生しています。
エラーの詳細と修正方法
エラーが発生する理由は、C言語の構文において、各ステートメント(命令)の終わりには必ずセミコロン `;` を記述する必要があるからです。質問者のコードでは、`sinsita=sin((i*pi)/180.0));` と `cossita=cos((i*pi)/180.0));` の部分で、関数呼び出しが終わった後にセミコロンがないため、構文エラーとなっています。
このエラーを解決するには、以下のようにセミコロンを正しく追加する必要があります。
#include
#include
void main(){
float sinsita,cossita,tansita,pi;
int i;
pi=3.14159265358979;
for(i=1;i<=360;i++){
sinsita=sin((i*pi)/180.0);
cossita=cos((i*pi)/180.0);
tansita=sinsita/cossita;
printf("%d度 %f %f %f",i,sinsita,cossita,tansita);
sinsita=cossita=0.0;
}
}
修正後のコードの解説
修正後のコードでは、`sinsita=sin((i*pi)/180.0);` と `cossita=cos((i*pi)/180.0);` の行で、関数呼び出しが正しく終了するようにセミコロンを追加しました。これにより、コンパイルエラーが解消され、正常にプログラムが動作するようになります。
また、`sinsita=cossita=0.0;` の行で、変数` sinsita` と `cossita` をリセットする処理が行われています。これにより、次のループでこれらの変数が新しい値で上書きされます。
初心者がよく陥るエラーとその防止方法
セミコロンの付け忘れは、C言語を学ぶ上でよくあるミスです。特に、複数の関数呼び出しや数式を含む行では、どこで文が終わるのかをしっかり把握することが重要です。プログラムを書く際に、関数呼び出しの後に必ずセミコロンを付ける習慣をつけましょう。
まとめ
C言語のプログラミングでよくあるエラーは、セミコロンの付け忘れです。このエラーは、関数呼び出しや変数の代入の際に発生することが多いため、プログラムを書く際は注意が必要です。今回の記事で紹介したように、正しくセミコロンを追加することでエラーを解消できるので、今後はこの点に注意してプログラミングを進めてください。


コメント