teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

7

追記

2019/02/24 01:45

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -52,4 +52,9 @@
52
52
  ゲームを作るのは確かに楽しいですが、もうちょっと簡単なものから始めてはいかがですか。
53
53
  特にループの挙動について入念な復習が必要です。
54
54
 
55
- ゲーム中、値の入力を一回しか受け付けていないことに気付いているでしょうか。
55
+ ゲーム中、値の入力を一回しか受け付けていないことに気付いているでしょうか。
56
+
57
+ 質問編集を受けて
58
+ ---
59
+ rand_nを呼び出す度に答えが変わっています。
60
+ **一回だけ**rand_nを呼び出し、その返り値を答えとして変数に格納しておくべきです。

6

追記

2019/02/24 01:45

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -50,4 +50,6 @@
50
50
  0. for (int i = 0; f == 100; i++) 継続条件が仕様に反する。
51
51
 
52
52
  ゲームを作るのは確かに楽しいですが、もうちょっと簡単なものから始めてはいかがですか。
53
- 特にループの挙動について入念な復習が必要です。
53
+ 特にループの挙動について入念な復習が必要です。
54
+
55
+ ゲーム中、値の入力を一回しか受け付けていないことに気付いているでしょうか。

5

追記

2019/02/23 09:53

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -36,6 +36,7 @@
36
36
  printf("%d\n", g - rand());
37
37
  > ```
38
38
 
39
+ 前述のとおり乱数の値は毎回異なりますし、
39
40
  randはrand_nよりもっと広い範囲の整数を返しますから、何ら不思議では無いです。
40
41
 
41
42
  その他、怪しい箇所

4

修正

2019/02/23 09:41

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -49,4 +49,4 @@
49
49
  0. for (int i = 0; f == 100; i++) 継続条件が仕様に反する。
50
50
 
51
51
  ゲームを作るのは確かに楽しいですが、もうちょっと簡単なものから始めてはいかがですか。
52
- 特にfor文使い方について入念な復習が必要です。
52
+ 特にループ挙動について入念な復習が必要です。

3

追記

2019/02/23 09:37

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -30,6 +30,14 @@
30
30
  ゲームとして成立させるなら、
31
31
  **一回だけ**rand_nを呼び出し、その返り値を答えとして変数に格納しておくべきです。
32
32
 
33
+ > しかし、キーボードからの入力値とコンピューターから表示される数字の差が正しく計算されておらず、試しに表示させた(31行目)ところ、-18456と表示されてしまいました。
34
+
35
+ > ```C
36
+ printf("%d\n", g - rand());
37
+ > ```
38
+
39
+ randはrand_nよりもっと広い範囲の整数を返しますから、何ら不思議では無いです。
40
+
33
41
  その他、怪しい箇所
34
42
  ---
35
43
  上から順に列挙します。

2

修正

2019/02/23 09:35

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -38,8 +38,7 @@
38
38
  0. rand_nの実装について、なぜ0を加算しているのか。
39
39
  0. gess ⇒ guess
40
40
  0. fを初期化した直後に値を判定しても意味が無い。
41
- 0. printf("Selected number is %d\n", rand_n()); 選んでない。
42
- 0. for (int i = 0; f == 100; i++) { 継続条件が仕様に反する。
41
+ 0. for (int i = 0; f == 100; i++) 継続条件が仕様に反する。
43
42
 
44
43
  ゲームを作るのは確かに楽しいですが、もうちょっと簡単なものから始めてはいかがですか。
45
44
  特にfor文の使い方について入念な復習が必要です。

1

追記

2019/02/23 09:31

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -30,5 +30,16 @@
30
30
  ゲームとして成立させるなら、
31
31
  **一回だけ**rand_nを呼び出し、その返り値を答えとして変数に格納しておくべきです。
32
32
 
33
- その他、怪しい箇所が多数あります。
33
+ その他、怪しい箇所
34
+ ---
35
+ 上から順に列挙します。
36
+ 0. グローバル変数のfとローカル変数のfが共存している。
37
+ 0. 不要なプロトタイプ宣言が並んでいる。
38
+ 0. rand_nの実装について、なぜ0を加算しているのか。
39
+ 0. gess ⇒ guess
40
+ 0. fを初期化した直後に値を判定しても意味が無い。
41
+ 0. printf("Selected number is %d\n", rand_n()); 選んでない。
42
+ 0. for (int i = 0; f == 100; i++) { 継続条件が仕様に反する。
43
+
34
- ゲームを作るのは確かに楽しいですが、もうちょっと簡単なものから始めてはいかがですか。
44
+ ゲームを作るのは確かに楽しいですが、もうちょっと簡単なものから始めてはいかがですか。
45
+ 特にfor文の使い方について入念な復習が必要です。