C言語初心者

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みう

C言語初心者

#1

投稿記事 by みう » 14年前

C言語 の勉強をしているのですが「初心者」
下の問題があったのですが。
int inp = -1 の意味がわかりません
int inpじゃなんでだめになっちゃうんでしょうか?
あと下にあるint != seikaiの!はどうゆう役割をしているんでしょうか
簡単な質問かもしれませんが教えてください><
__________________________________________________
問題

数当てゲーム。ある数を設定して、それを当てるゲームを作る。正解よりも小さい値を入力したら「小さい」と、大きい値を入力したら「大きい」と表示する。入力する範囲は0から9999に限定し、それ以外が入力されたらもう一度入力させる。 10回行っても正解しない場合は終了する。

解答

#include <stdio.h>

void main(){
int seikai = 1484;
int count;
int inp = -1;

for ( count = 1 ; count <= 10 ; count++ ){
inp = -1;
while( inp < 0 || inp > 9999 )
scanf("%d", &inp);

if ( inp == seikai ){
printf("%d回目で正解ですね\n", count);
break;
}
if ( inp < seikai )
printf("小さい\n");
else
printf("大きい\n");
}
if ( inp != seikai )
printf("10回で正解しませんでした。ゲームオーバー\n");
}

イズミ

Re:C言語初心者

#2

投稿記事 by イズミ » 14年前

int inp = -1 の意味がわかりません
int inpじゃなんでだめになっちゃうんでしょうか?>>
 
もしinpに何も値が代入されていなければ8行目の
while( inp < 0 || inp > 9999 )
で判断できなくなってしまいエラーになってしまいます。





あと下にあるint != seikaiの!はどうゆう役割をしているんでしょうか?>>
     (↑int ではなく inp でないでしょうか?)

!はinp と seikai が同じでないことをあらわします。
(つまり inp == seikai の逆)


こんな感じの回答でよろしかったでしょうか?

みう

Re:C言語初心者

#3

投稿記事 by みう » 14年前

ということは。inp=10000でももんだいないということですか?

ゆーずぃ

Re:C言語初心者

#4

投稿記事 by ゆーずぃ » 14年前

>inp=10000
問題ないです。ただ、どのみちWhileループに入る前に-1を代入しているので正直初期化する必要はないです。なので最初に指摘してたようなint inp;でもいいです。

みう

Re:C言語初心者

#5

投稿記事 by みう » 14年前

これで次に進めます。
ありがとうございました~^^

また質問するかもしれませんがそのときはよろしくお願いします&#9787;&#9787;&#9787;

白い時空

Re:C言語初心者

#6

投稿記事 by 白い時空 » 14年前

補足ですが、次のようにdo while文に変更すればinp = -1を入れなくても大丈夫です

do{
scanf("%d", &inp);
}while( inp < 0 || inp > 9999 );
画像

閉鎖

“C言語何でも質問掲示板” へ戻る