質問編集履歴

1

ソースコードを作り直しました。

2020/07/08 05:14

投稿

alice331
alice331

スコア11

test CHANGED
@@ -1 +1 @@
1
- C言語 記憶力トレーニングのプログラム
1
+ C言語 記憶力トレーニングのプログラム 桁数の制御方法
test CHANGED
@@ -1,28 +1,38 @@
1
1
  記憶力トレーニングのプログラムを作成しました。
2
+
3
+ アドバイスを参考に作り直しましたがうまくいきません。
4
+
5
+ どこが、間違っていますでしょうか?
2
6
 
3
7
 
4
8
 
5
9
  ・やりたいこと
6
10
 
7
- printf("%d",no);
11
+ 記憶すべき数字を12に固定して数字を入力します。
8
12
 
9
- ⇒0012などであれば、12と表示される。
13
+ (入力) => (結果)
10
14
 
11
- 4桁表示したいで
15
+ 12 => 正解です
16
+
17
+ 012 => 正解です
18
+
19
+ 0012 => 正解です
12
20
 
13
21
 
14
22
 
15
- if( no != num)
23
+ 現在上記の結果が出てしまいます
16
24
 
17
- ⇒intまま扱ってるの、0012の場合は12でも012でも0012
25
+ 下記ように出力したいです。
18
26
 
19
- でも正解となる。
27
+ (入力) => (結果)
20
28
 
29
+ 12 => 正解です
30
+
31
+ 012 => 不正解です
32
+
21
- 0012の場合は0012以外は不正解としたいです
33
+ 0012 => 不正解です
22
34
 
23
35
 
24
-
25
- 上記の2点です。
26
36
 
27
37
  よろしくお願い致します。
28
38
 
@@ -39,6 +49,8 @@
39
49
  #include <stdio.h>
40
50
 
41
51
  #include <stdlib.h>
52
+
53
+ #include <string.h>
42
54
 
43
55
 
44
56
 
@@ -96,6 +108,10 @@
96
108
 
97
109
  int no;
98
110
 
111
+ char str1[10];
112
+
113
+ char str2[10];
114
+
99
115
 
100
116
 
101
117
  /*乱数を設定*/
@@ -112,11 +128,13 @@
112
128
 
113
129
  {
114
130
 
115
- //int num; /* 読み込んだ数字 */
131
+ /* 読み込んだ数字 */
116
132
 
117
- int no = rand() % 9000; /* 記憶する数字 */
133
+ no = 12; //rand() % 9000 + 1000 ; /* 記憶する数字 */
118
134
 
135
+ snprintf(str1, sizeof(str1), "%d", no);
136
+
119
- printf("%4d",no);
137
+ printf("%s",str1);
120
138
 
121
139
  fflush(stdout);
122
140
 
@@ -130,17 +148,23 @@
130
148
 
131
149
  fflush(stdout);
132
150
 
133
- scanf("%4d", &num);
151
+ scanf("%d", &num);
134
152
 
135
- scanf("%*[^\n]");
153
+ scanf("%*[^\n]");
154
+
155
+ snprintf(str2, sizeof(str2), "%d", num);
136
156
 
137
157
 
138
158
 
139
- if( num != no)
159
+ if( strcmp(str1,str2) == 0)
140
160
 
141
161
  {
142
162
 
143
- printf("間違いです。\n");
163
+ printf("正解です。\n");
164
+
165
+ success++;
166
+
167
+ break;
144
168
 
145
169
  }
146
170
 
@@ -148,9 +172,7 @@
148
172
 
149
173
  {
150
174
 
151
- printf("正解です。\n");
175
+ printf("正解です。\n");
152
-
153
- success++;
154
176
 
155
177
  }
156
178
 
@@ -172,4 +194,6 @@
172
194
 
173
195
 
174
196
 
197
+
198
+
175
199
  ```