• ベストアンサー

教えてください

なんども見直してもエラーになります。ソースのおかしいところ教えてください。 #include <stdio.h> #include <time.h> #include <stdlib.h> main () { int computer; printf("【ジャンケンゲーム】\n"); srand(time(NULL)); //乱数の種をまく   computer = rand()%3 + 1; printf("コンピューターは %d", computer); return 0; }

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

  • ベストアンサー
  • UMTS
  • ベストアンサー率25% (3/12)
回答No.5

既に#1さん・#2さんのおっしゃる事で解決済みなので他に気になった事を書きます。 それなりのエディター(NoEditor:フリーソフト等)でソースを書けばTABや全角スペースを表示してくれるのでわざわざ質問する程の事も無いかと思います。

その他の回答 (4)

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.4

#2です。 エラー E2206 2-1.c 11: 不正な文字 ' ' (0x8140)(関数 main ) エラー E2206 2-1.c 11: 不正な文字 ' ' (0x8140)(関数 main )です やはり、スペースが全角になっているのが原因でしょう。 質問のプログラムをそのまま貼り付けたソースで同じエラーが出ました。 11行目のスペース2個を半角スペースに変更したらコンパイルは成功しましたよ。

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

main関数をint mainにしないと通さないコンパイラがあると聞いたことがあります。 この場合returnしているのに返値が定義されていない時点で微妙な気もするのですが・・・

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.2

一応、エラーメッセージも併せて教えて下さい。 質問のプログラムをコンパイルすると、11行目で全角スペースがエラーになります。 (全角スペースを半角スペースに変更するととおります。。) プログラムを掲載するときに、書き込むのではなく元々のソースから、コピー&ペーストした方が完全な形で相手に伝わるかも・・・

kawasemi-1204
質問者

補足

エラー E2206 2-1.c 11: 不正な文字 ' ' (0x8140)(関数 main ) エラー E2206 2-1.c 11: 不正な文字 ' ' (0x8140)(関数 main )です

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

全角スペースがcomputer の前に入っている以外は、別におかしい所はないみたいな感じですが… エラーメッセージは、どんなですか?

関連するQ&A

  • 乱数について

    Visual Studio2008を使っています。 #include<stdio.h> #include<stdlib.h> #include<time.h> int main(void){ int i; srand(time(NULL)); i=rand(); printf("%d\n",i); return 0; } 乱数を作るために上のようなプログラミングを作りました。 これを「ソリューションのビルド」すると 【warning C4244: '引数' : 'time_t' から 'unsigned int' への変換です。データが失われる可能性があります。】 と出ます。 このまま行っても乱数が出来るのですが どうしたらいいのでしょうか? 8行目を srand(time_t(NULL)); srand((unsigned)time(NULL)); と変えればいいのでしょうか? time_tでやると乱数が同じ値しか出てきません。 教えてください。

  • 乱数発生

    #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) {int y, m, l; srand( (unsigned)time( NULL ) ); y=rand() % 2500 + 1600; m=rand() % 12 + 1; l=rand() % 29 + 1; printf("西暦%d年%d月%d日",y,m,l); return(0); }今回は乱数発生でランダムにだされた西暦年月日をつくりましたが、y=rand() % 2500 + 1600; というのがありこれはyという乱数が2500以下1600以上という意味なのですがなぜかプログラムを実行しても3000いくつとか4000いくつなんてのもでてきます。m=rand() % 12 + 1;はちゃんと12以下1以上でできるのですがなぜですか?本当にわかりません。是非だれか教えてください。

  • プログラミング☆

    1から10の乱数を 2つ同時に表示しようとしてるのですが、 実行すると2つとも同じ数字になってしまいます。 また、あとでその乱数の合計(=point) をだしたいのでx、yに乱数を代入したいのですがどのように したらいいのでしょうか?? 心やさしい方、お願いします。 #include <stdio.h> #include <stdlib.h> int dice(void); int dice2(void); main() { int x=0,y=0,point; printf("start this game\n"); printf("here is your card\n"); x=dice(); y=dice2(); point=x+y; printf("your card is %d and %d point is %d\n",x,y,point); return 0; } /*ka-do1*/ int dice(void){ srand(time(NULL)); return 1+(rand() % 10); } /*ka-do2*/ int dice2(void){ srand(time(NULL)); return 1+(rand() % 10); }

  • 乱数について

    C の入門書を1冊読み終え、簡単なプログラムを作成しようとしているのですが、 早速分からないことが出たので教えて頂ければと思います。 --------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int num; int i = 0; while( i < 4 ){ srand(time(NULL)); num = rand()%100; printf("%d\n", num); i++; } return 0; } --------------------------------------------- 上記を実行したのですが、秒数を乱数の種としているため4回とも同じ値を取得してしまいます。 より高精度に秒数を取得することは可能でしょうか? もしくはこのようなかたちで4回ともに異なる数を得ることが出来る方法がありましたら教えて頂きたいと思います。

  • 毎回違う乱数を生成するにはどうしたらいいでしょうか

    C言語の初心者です。よろしくお願いいたします! 乱数に関する質問:毎回違う乱数を生成するにはどうすればいいでしょうか。 学校の講義の中に  >>time() は1970 年1 月1 日0 時0 分(標準時)からの経過秒数を返 すため,1 秒以内に何度も実行すると,同じ数字で乱数を初期化す ることになり,結果も同じになってしまう. という記述がありますが、時間を置いてから、実行しても同じ結果となりました。 その一 #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(void) { double x,y; int i,index=0; double a,n; printf("How many trials?..."); scanf("%lf",&n); for (i=0;i<n;i++) { x=rand()/(RAND_MAX+1.0); y=rand()/(RAND_MAX+1.0); if((x*x+y*y)<1) index++;} a=4*index/n; printf("Result is %.2f(%.2f)",a,sin(-a)); return 0; } その二 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int a; srand((unsigned)time(NULL)); a=(int)(rand()/(RAND_MAX+1.0)*10); printf("%d\n",a); return 0; } お忙しい中、教えていただけたらうれしいです。

  • おしえて

    C言語のソースのおかしいところ教えてください。 #include <stdio.h> #include <time.h> #include <stdlib.h> main () { int computer; srand(time(NULL)); printf("【ジャンケンゲ―ム】\n"); computer = rand()%3+1;  printf("コンピュータは"); if(computer ==1) { printf("グー"); } else if(computer == 2) { printf("チョキ"); } else {printf("パー"); } printf("! "); return 0; } エラーは エラー E2206 2-3.c 12: 不正な文字 ' ' (0x8140)(関数 main ) エラー E2206 2-3.c 12: 不正な文字 ' ' (0x8140)(関数 main ) とでます。

  • 無限

    今、ランダムな数を無限に出すプログラムを作っています。一応 #include <stdio.h> #include <time.h> #include <stdlib.h> main () { int word,i; srand (time(NULL)); word=rand(); printf("number!!\n"); for (i=0;i<3;i--) { printf("%d\n",word); } return 0; } というかんじで作ったのですが、コンパイルして実行すると、同じ数しか出てきません。どうすればいいか教えてください。

  • C言語 スロットみたいにするやり方が分かりません

    今自由課題でスロットのように数字を乱数で表示させて、Enterを押すと押したときの値を表示させたいです しかし、今書いているやつだとなぜかスロットみたいに数字の表示ができません。 おそらくif文で一旦止まってしまっていると思うのですが、どこが悪いのか教えてください。 #include <stdio.h> #include <stdlib.h> int main(){ int a,b,c; srand(time(NULL)); c = getchar(); b = rand()%6+1; for(;;){ a = rand()%6+1; printf("\033[H\033[J"); printf("%d",a); if(getchar() == '\n'){ printf("あなたのサイコロの値は%dです!!\n",a); break; }else{ continue; } } return 0; }

  • 乱数

    #include<stdio.h> #include<stdlib.h> #include<time.h> int main(void) { double n,end; printf("いくつ以上の値が出たら終了しますか?:"); scanf("%lf",&end); srand((unsigned)time(NULL)); for( ; ; ){ n=(double)rand(); printf("%f\n",n); if(n>=end) break; } return 0; } これなんですが、このまま実行すると.00000になってしまいます。 自分的には0.~にしたいのですが、どう変えればいいでしょうか? 回答お願いします。

  • srand(time(NULL))の使い方

    C言語の勉強中で「ランダムな整数値を作成し、その数値が偶数か奇数かを判定するプログラムをif~else 構文を使って作成」したいのですが下記のプログラムでやってみたのですがまだまだ知識不足で完成しません。知識をお借りできればと思っていますのでどなたか教えてください。 #include<stdio.h> #include<stdlib.h> #include<time.h> int main(void) { { int = i; i = rand(); srand((unsigned)time(NULL)); printf("%d\n",rand()); } if(i % 2 == 0) { printf("偶数である:\n",i); } else { printf("奇数である:\n",i); } return 0; }

専門家に質問してみよう