- 締切済み
数当てゲームを作っているのですが
数当てゲームを作っているのですが 乱数を設定してその値よりも小さい値を入力したら「小さい」、 大きい値を入力したら「大きい」と表示して その値を入力したときは「正解」と表示するような数当てゲームを作っています。 一応コードは書けたのですが、コンパイル、実行がうまくいかないのです。 ご指摘お願いします。 以下コード /* 1~99の乱数を発生させる */ #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i,random; // 乱数の種を植える,種に時間を使う srand((unsigned)time(NULL)); for(i=0; i<1; i++) { //乱数の発生 random = 1 + rand()%99; printf("%d\n",random); } printf("数当てゲームをはじめます。\nコンピュータが当たり数を用意しました。当たり数は1~99の間にあります。\n"); for(;;) { printf("あなたの予想は? > "); scanf("%d",&i); if(i>random) puts("大きい"); else puts("小さい"); break; } if(random - i = 0) printf("正解"); return (0); }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- magicalpass
- ベストアンサー率58% (378/648)
> 一応コードは書けたのですが、コンパイル、実行がうまくいかないのです。 うまくいかないというのはどういうことを示していますか? 何がうまくいかないのかわからないけど、明らかに間違ってる部分は > if(random - i = 0) 代入文の左辺が演算式になってます。 ま、本当は代入じゃなくて比較なんだろうけど、比較演算子は「=」じゃなくて「==」です。 これを変えればコンパイルは通ると思うけど、期待する動作かどうかは知りません。
- edomin7777
- ベストアンサー率40% (711/1750)
コンパイルが通らないのは、 if(random - i = 0) でしょ? エラーメッセージに行番号が出ると思いますが…。 if(random - i == 0) 比較するなら、「=」2つ。 「random - i」に「0」を代入しようとするからエラーになる。 でも、全体的にループ処理の中が for(;;) { printf("あなたの予想は? > "); scanf("%d",&i); if(i>random) puts("大きい"); else if(i < random) puts("小さい"); else { printf("正解"); break; } とかにしないと、数当てできていないよ?