C言語入門3章サンプルプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
美羽=古王
記事: 4
登録日時: 11年前

C言語入門3章サンプルプログラム

#1

投稿記事 by 美羽=古王 » 11年前

初めまして。
自分は今、C言語入門でC言語を勉強しています。
3章の数当てゲームをプログラミングし、解答を見たのですがよく解らない所があるのです。

コード:


#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");
}






解らない所ですが
1:何故inpを-1に定義するのか。
2:何故最後の部分、10回でゲームオーバーするのか。

相談に乗っていただければ幸いです。

美羽=古王
記事: 4
登録日時: 11年前

Re: C言語入門3章サンプルプログラム

#2

投稿記事 by 美羽=古王 » 11年前

#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");
}

すいません、何故か一行になりました。本当のプログラムはこちらです

K_Tarou
記事: 22
登録日時: 12年前

Re: C言語入門3章サンプルプログラム

#3

投稿記事 by K_Tarou » 11年前

初めまして、拙いながらも説明させて頂きます。
※すみません、変な所があったので訂正いたします。

1の回答:
11行目のwhile文の条件が " inpが0より小さい、またはinpが9999より大きい "となっていて、
キーボードからの入力が、この条件の範囲から脱するまで(inpが0~9999の範囲に収まるまで)繰り返しwhile文で入力させることになります。
一番最初にキーボードから入力してもらうために、わざと上記の範囲外の値を設定しているということなのでしょう。


2の回答:
9行目のfor文は、条件(ここではcountが10以下という条件)を満たしている間、for文の中の処理、つまり、9行目~22行目を繰り返し続けます。
22行目の処理が終わった後に、9行目に戻って条件文の "++count" で count を1足していき、最終的に count が10になったら繰り返しを抜けることになります。

繰り返しを抜けたら23行目のif文を処理しますが、この行を処理しているということは、先程のfor文を抜けているということなので count が10になっていることになります。
この時に、if文の条件式で ユーザーの解答(inp) が 正解の数(seikai) と一致していないかを判定して、一致していないということは
10回目の解答で正解できなかったということになり、24行目の処理が行われてゲームオーバーということです。


拙い説明ですみません、理解していただけたでしょうか?

美羽=古王
記事: 4
登録日時: 11年前

Re: C言語入門3章サンプルプログラム

#4

投稿記事 by 美羽=古王 » 11年前

解りやすく、しかも丁寧に教えていただきありがとうございます。おかげさまで、理解出来るようになりました。
拙いなんてとんでもありません。こちらは嬉しい限りです。ありがとうございました。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: C言語入門3章サンプルプログラム

#5

投稿記事 by へにっくす » 11年前

美羽=古王 さんが書きました:すいません、何故か一行になりました。本当のプログラムはこちらです
IE10をお使いではありませんか?
こちら参照。
http://dixq.net/forum/viewtopic.php?f=3&t=13306
written by へにっくす

閉鎖

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