- ベストアンサー
コンパイラソフトのエラーについて
- コンパイラソフトのmsysでエラーが発生して動作しないため、アレンジ方法が分からず理論の勉強をしています。
- プログラムの実行結果として、ストライク1回、ボール1回入力した場合にどのような画面が表示されるのか疑問です。
- msys用にアレンジしたプログラムはどのようなものになるのか気になります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
main()を書いたり、printf(), scanf()使っているのでそれらを宣言するかstdio.hをincludeするかするなどすれば動かせるかと思いますよ。 #include <stdio.h> int main( void ) { int judge; int strike = 0; int ball = 0; while( strike < 3 && ball < 4 ){ printf( "ストライク=1 or ボール=2 ?" ); scanf( "%d", &judge ); if( judge == 1 ) strike++; else if( judge == 2 ) ball++; printf( "%dストライク,%dボール\n\n", strike, ball ); } if( 3 == strike ) printf( "3振\n" ); if( 4 == ball ) printf( "4球\n" ); return 0; }
その他の回答 (3)
- salsberry
- ベストアンサー率69% (495/711)
> cannot open output file a.exe: Permission denied 権限不足でa.exeというファイルを書き出せないというエラーメッセージですね。 a.cを書き込み・編集できているはずなのにa.exeは書き込めないのは難解です。 そのディレクトリで ls -la を実行したらどうなりますか? 既にa.exeというファイルがそこに存在している場合は一度それを消してからやり直してみてください。 a.exeが存在していない場合は、書き込みができる他のディレクトリにa.cをコピーして、そこへcdで移動してからもう一度試してください。
- salsberry
- ベストアンサー率69% (495/711)
質問者は初歩の初歩、Hello Worldのプログラムを書いたり実行したりしたことはないのでしょうか? もしあれば、質問文に書かれているのは完全なプログラムではなくその断片だということが分かると思います。ゆえに、msysだろうが他のCコンパイラだろうが、質問文に書かれている内容だけではコンパイル・実行できず、「msys用のアレンジ」というものは存在しません。 ついでに書くなら、私の知っているmsysならばそれは「コンパイラソフト」ではありません。 > 以上プログラムで、ストライクを1回、ボール1回入力した場合、出力画面にどん画面が出てくるのでしょうか? ストライク=1 or ボール=2 ?1 ストライク=1 or ボール=2 ?2 ストライク=1 or ボール=2 ? と出るでしょう。
補足
ありがとうございます。 自分なりに理解を深めています。 お待ちください^^
- kmee
- ベストアンサー率55% (1857/3366)
これがプログラムの一部だとすると、この程度の内容なら、大抵のCコンパイラなら、変更の必要なくコンパイルできます。msysで使うgccでも、Visual C++でも、Borland Cでも、です。 まさかと思いますが、ここに書いたので全部、ということは無いですか? ちゃんと、main関数として定義してありますか? > エラーがでて動きません 具体的にどんなエラーなのでしょうか? エラーメッセージを読んで、原因を考えて、修正して、次回からは同じエラーを出さない、出てもすぐ直せるようにする、というのが、プログラミング上達のコツの一つです。
補足
ご回答ありがとうございました。 MSYSを使ってMinGWでコンパイルしましたが以下のエラーが出ました。 $ gcc a.c -o a.exe c:\MinGw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot open output file a.exe: Permission denied collect2: ld returned 1 exit status 以上よろしくお願いいたします。