- ベストアンサー
コンパイル失敗と表示されましたがどこが間違っているでしょうか?
インターネット上の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)
- C・C++・C#
- 回答数6
- ありがとう数5
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>C\Documents and Setting\Owner\My Documents\C\web Ckouza3shou コンパイルに失敗した理由はパス名、ファイル名が「C Pad for LSI-86」で扱えない名前だからです。 フォルダ名、ファイル名は8.3形式しか使えません。 上とは別ですが、Cのソースファイルの拡張子は「.c」したほうが良いでしょう。
その他の回答 (5)
- dsuekichi
- ベストアンサー率64% (171/265)
ANo.3です。「C Pad for LSI-86」をインストールして試してみましたが・・・ ANo.5さんの回答にあるように、長いファイル名だと誤動作するようですね。 #実行ファイルが「WEBCKO~2.EXE」の様な8.3形式のファイルで作られてしまい、 #実行しようと「web Ckouza3shou.exe」を捜しにいって「見つからない」・・・ ファイル名を短くしてください。
お礼
ご回答ありがとうございます。名前を短くしてみてところ成功しました。
- precog
- ベストアンサー率22% (966/4314)
>どこが間違っているのか分かりません。詳しい方教えてください。 間違ってるのは、コンパイラーの使い方。 コンパイラーを使うのは、人間がするミスを事前に防ぐためです。なので、コンパイラーの出すメッセージには気を配ってきちんと読む必要があります。 コンパイルエラーが出るたびにここで聞くつもりですか?
お礼
ご回答ありがとうございました。コンパイラーの出すメッセージを読んでも意味が分からなかったので質問した次第です。 名前を短くしてみたところ成功しました。
- dsuekichi
- ベストアンサー率64% (171/265)
使用しているコンパイラは何でしょう? また、どうやって(どういう手順・パラメータ等)でコンパイルしましたか?
補足
コンパイラー名は[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)
コンパイルエラーは発生しないのですが、実行すると毎回 > }else if(count == 5) { > printf("正解は5でした\n"); ここのところしか通らない、あまりおもしろみのないコードですね。
お礼
ご回答ありがとうございます。 やはりうまくいきません。
- Evreux
- ベストアンサー率29% (225/774)
失敗した時に表示されたメッセージはなぜ書かないのですか? パッと見ではミスは見つからないので、 void main() という書き方がコンパイラによってはだめだった気がする。という程度のことしか思いつきません int main(void) ではだめですかね?
補足
ご回答ありがとうございます。 メッセージは単に[コンパイルに失敗しました]だけです。具体的に指摘された箇所については修正しました。 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++・C#
- 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・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・C++・C#
- 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・C++・C#
- 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・C++・C#
- 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・C++・C#
- 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; }
- ベストアンサー
- C・C++・C#
お礼
ご回答ありがとうございました。8.3形式というのがよくわからないのですがとにかく名前を短くしてみたところ成功しました。