アプリ版:「スタンプのみでお礼する」機能のリリースについて

数当てゲームを作っているのですが
乱数を設定してその値よりも小さい値を入力したら「小さい」、
大きい値を入力したら「大きい」と表示して
その値を入力したときは「正解」と表示するような数当てゲームを作っています。

一応コードは書けたのですが、コンパイル、実行がうまくいかないのです。
ご指摘お願いします。
以下コード

/* 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);
}

A 回答 (2件)

> 一応コードは書けたのですが、コンパイル、実行がうまくいかないのです。



 うまくいかないというのはどういうことを示していますか?

 何がうまくいかないのかわからないけど、明らかに間違ってる部分は

> if(random - i = 0)

 代入文の左辺が演算式になってます。
 ま、本当は代入じゃなくて比較なんだろうけど、比較演算子は「=」じゃなくて「==」です。
 これを変えればコンパイルは通ると思うけど、期待する動作かどうかは知りません。
    • good
    • 0

コンパイルが通らないのは、


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;
}


とかにしないと、数当てできていないよ?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!