• ベストアンサー

コンパイル失敗と表示されましたがどこが間違っているでしょうか?

インターネット上のC言語入門講座で例題どうりにコンパイラーに入力したつもりなのですが[コンパイルに失敗しました。]と表示されてしまいどこが間違っているのか分かりません。詳しい方教えてください。 #include<stdio.h> void main() { int count; for (count = 0; count < 5; count++) { printf("countは今%dです\n", count); } if(count == 4){ printf("正解は4でした\n"); }else if(count == 5) { printf("正解は5でした\n"); }else { printf("4でも5でもありませんでした\n"); } }

  • etx
  • お礼率72% (24/33)

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

  • ベストアンサー
  • TT414
  • ベストアンサー率18% (72/384)
回答No.5

>C\Documents and Setting\Owner\My Documents\C\web Ckouza3shou コンパイルに失敗した理由はパス名、ファイル名が「C Pad for LSI-86」で扱えない名前だからです。 フォルダ名、ファイル名は8.3形式しか使えません。 上とは別ですが、Cのソースファイルの拡張子は「.c」したほうが良いでしょう。

etx
質問者

お礼

ご回答ありがとうございました。8.3形式というのがよくわからないのですがとにかく名前を短くしてみたところ成功しました。

その他の回答 (5)

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.6

ANo.3です。「C Pad for LSI-86」をインストールして試してみましたが・・・ ANo.5さんの回答にあるように、長いファイル名だと誤動作するようですね。 #実行ファイルが「WEBCKO~2.EXE」の様な8.3形式のファイルで作られてしまい、 #実行しようと「web Ckouza3shou.exe」を捜しにいって「見つからない」・・・ ファイル名を短くしてください。

etx
質問者

お礼

ご回答ありがとうございます。名前を短くしてみてところ成功しました。

  • precog
  • ベストアンサー率22% (966/4314)
回答No.4

>どこが間違っているのか分かりません。詳しい方教えてください。 間違ってるのは、コンパイラーの使い方。 コンパイラーを使うのは、人間がするミスを事前に防ぐためです。なので、コンパイラーの出すメッセージには気を配ってきちんと読む必要があります。 コンパイルエラーが出るたびにここで聞くつもりですか?

etx
質問者

お礼

ご回答ありがとうございました。コンパイラーの出すメッセージを読んでも意味が分からなかったので質問した次第です。 名前を短くしてみたところ成功しました。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.3

使用しているコンパイラは何でしょう? また、どうやって(どういう手順・パラメータ等)でコンパイルしましたか?

etx
質問者

補足

コンパイラー名は[C Pad for LSI-86]です。 入力方法は印刷したものを見ながら手入力です。 ご質問の中のパラメータの意味が良く分かりません。 (パラメータ自体の意味は大体分かっているつもりですが) 実行ボタンを押すと[コンパイルに失敗しました。] [ファイル"C\Documents and Setting\Owner\My Documents\C\web Ckouza3shou exeは存在しません。]と表示されます。なお、web Ckouza3shouは私がプログラムにつけた名前です。そしてOKボタンを押すと下部に ■C:\Documents and Settings\Owner\My Documents\C> LCC WEBCKO~1.C lld @link.i と表示されています。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.2

コンパイルエラーは発生しないのですが、実行すると毎回 > }else if(count == 5) { > printf("正解は5でした\n"); ここのところしか通らない、あまりおもしろみのないコードですね。

etx
質問者

お礼

ご回答ありがとうございます。 やはりうまくいきません。

  • Evreux
  • ベストアンサー率29% (225/774)
回答No.1

失敗した時に表示されたメッセージはなぜ書かないのですか? パッと見ではミスは見つからないので、 void main() という書き方がコンパイラによってはだめだった気がする。という程度のことしか思いつきません int main(void) ではだめですかね?

etx
質問者

補足

ご回答ありがとうございます。 メッセージは単に[コンパイルに失敗しました]だけです。具体的に指摘された箇所については修正しました。 void main(void)でもint main(void)でもだめでした。

関連するQ&A

  • 分割コンパイルについて

    現在分割コンパイルが分からずに苦戦しています。 下記のリストは構造体を使わなければコンパイラを通すことができましたが、 使うとなぜか通りません。 あれこれ試しましたがどうしても分かりません。 何がおかしいのでしょうか? *define.hで全てのファイルへの定義や宣言を行わせています。 ////////////// //Main.cpp ////////////// #include <stdio.h> #include <conio.h> #include "define.h" int main( void ){ Tmp[0].c = 15; printf("a: %d\n", a); printf("b: %d\n", b); printf("c: %d\n", Tmp[0].c); printf("NUM:%d\n", NUM); aaa(); bbb(); getch(); return 0; } ////////////////// // A.cpp ///////////////// #include <stdio.h> #include "define.h" void aaa( void ){ printf("a: %d\n", a); printf("b: %d\n", b); printf("c: %d\n", Tmp[0].c); printf("NUM:%d\n", NUM); } ////////////////// // B.cpp ///////////////// #include <stdio.h> #include "define.h" void bbb( void ){ printf("a: %d\n", a); printf("b: %d\n", b); printf("c: %d\n", Tmp[0].c); printf("NUM:%d\n", NUM); } ////////////////// // define.cpp ///////////////// #include "define.h" int a = 10; int b = 20; struct Parameter { int c; }; struct Parameter Tmp[NUM]; ////////////////// // define.h ///////////////// #define NUM 100 extern int a; extern int b; extern struct Parameter Tmp[NUM]; void aaa( void ); void bbb( void );

  • cではよくてc++ではダメな理由

    #include <stdio.h> #include <stdlib.h> int main(void) { int *x; x = calloc(1, sizeof(int)); if (x == NULL) puts("記憶域の確保に失敗しました。"); else{ *x = 57; printf("*x = %d\n", *x); free(x); } return 0; } 上のソースなのですがcallocの戻り値がvoidなのでintにはキャストしてくれみたいなことを コンパイラに言われます。 cではコンパイルできてc++ではコンパイルできないのはなぜでしょう。

  • C言語プログラミングについて

    #include <stdio.h> int main(void) { printf("hello,world\n"); } □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ #include <stdio.h> int main(void) { printf("hello"); printf(",world"); printf("\n"); } 上の2つのプログラムをコンパイルするとどのような違いが生じるんですか??printfってどんな働きをするんですか?

  • c言語のフローチャートについての質問です

    #include <stdio.h> int main (void) { int n; for (n=1900; n<2000; n++) { if (n%4==0 && n%100!=10) printf ("%d",n); else if(n%400==0) printf ("%d",n); } printf("\n"); return 0; } をどなたかフローチャートに直してください JIS規格のものでお願いします

  • C言語について

    次のような問題です。 問 自然数nを入力し、nを3で割って割り切れるかどうかを判定し結果を表示する。「割り切れる」、「1余る」、「「2余る」のいずれかが入るものとする。 このようなものをつくりました。 #include<stdio.h> int main(void) { int n; printf("自然数:"); scanf("%d",&n); if(n==0){ printf("割り切れる\n"); }else if(n==1){ printf("1余る\n"); }else{ printf("2余る"); } return(0); } これで合っているかよろしくお願いします。

  • if文がコンパイルエラーを起こしてしまう…

    C言語の初心者です。 まだ始めて間もない中学生なのですが、タイトル通り、以下のようなif文をコンパイルすると、コンパイルエラーを起こしてしまいます。 何度も、やり直したのですが、どうしてもエラーが出ます。 何方か、「文が変だなぁ」とお気づきなさった方は、回答を頂けると、幸いです。 どうぞよろしくお願い致します。 とりあえず、本に習って、下の文を作成しました。 #include <stdio.h> main() {    int year; year = 14; /* 数字のところにあなたの年齢を入れてください。 */    if (year < 20)     {      printf("あなたはまだ、20を過ぎていないので、お酒は飲めません。\n");     }      else     {      printf("あなたは成人なので、楽しくお酒を飲むことが出来ます。\n");     }      if (year == 20)     {      printf("あなたは、今年成人式ですね。\n");     }      if (year >= 18 )     {      printf("あなたは結婚が出来る年齢ですね。\n");     } }

  • c言語についての質問です。

    #include<stdio.h> int main(void){ int a; printf("1文字たいぷしてください。\n"); scanf("%d",&a); if(a>=65 && a<=90){ printf("大文字です。\n"); } else if(a>=97 && a<=122){ printf("小文字です。\n"); } else{ printf("大文字でも小文字でもありません\n"); } return 0; } このプログラムは正しくなくて、 intをchar %dを%cにかえなければなりません。 なぜintはダメなんでしょうか? できれば丁寧に教えてください。 お願いします。

  • C言語での関数forについて

    C言語の基本的なことで躓いてしまって 自分でいくら考えてみても、わかりません・・。 よければ教えて頂けないでしょうか。 ----- { int count; for (count = 0; count < 5; count++) { printf("countは今%dです\n", count ); } if (count == 4) { printf("正解は4でした\n"); } else if (count == 5) { printf("正解は5でした\n"); } else { printf("正解は4でも5でもありませんでした\n"); } } ---------- 上のプログラムを実行すると”正解は5でした”と出るのは分かります。 しかし”countは今4です”までしか出ないのが何故だか分かりません。 ここは5ではないんでしょうか? 私は何か根本的なことが分かってないのでしょうか・・。 教えてください。

  • c言語のフローチャートについての質問です

    #include <stdio.h> int main (void) { int n; for (n=1900; n<2000; n++) { if (n%4==0 && n%100!=10) printf ("%d",n); else if(n%400==0) printf ("%d",n); } printf("\n"); return 0; } をフローチャートに直したいのですがいまいち方法が解りません、どなたか詳しい回答お願いします JIS規格のものでお願いします

  • if~else文の中にまたif~else文をいれるには。

     このプログラムを思うように実行したいのですが、できません。 コンパイルはできるのですが、警告が4つほど出て、結果も自分が思ってるのとは違います。 プログラムのどこを改善すべきか教えてください。 OSはWindows XPで、コンパイラはボーランドのフリーコンパイラを使用しています。 #include<stdio.h> int main(){ int a,b,c,d; printf("1か0を入力してください。\n"); scanf("%d",&a); if(a=0) { printf("2か3を入力してください。\n"); scanf("%d",&b); if(b=2){ printf("今まで合計は%dです。\n",a+b); } if(b=3){ printf("今まで合計は%dです。\n",a+b); } else { printf("指定した数字を入力して下さい。\n"); } } else if(a=1) { printf("あなたは%dを入力しました。\n",a); } else { printf("指定した数字を入力してください。\n"); } return 0; }

専門家に質問してみよう