回答編集履歴

4

書式修正

2020/07/23 16:12

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -4,9 +4,33 @@
4
4
 
5
5
 
6
6
 
7
- `scanf("%d", &n);``scanf("%d%*c", &n);`、`scanf("%c %d", &c, &num);`を`scanf("%c %d%*c", &c, &num);`とすることで`\n`を読み捨てるか、
7
+ ```diff
8
8
 
9
+ -scanf("%d", &n);
10
+
11
+ +scanf("%d%*c", &n)
12
+
13
+
14
+
15
+ -scanf("%c %d", &c, &num);
16
+
9
- `scanf("%c %d", &c, &num);`を`scanf(" %c %d", &c, &num);`(`%c`の前にスペース)としてみてください。
17
+ +scanf("%c %d%*c", &c, &num);
18
+
19
+ ```
20
+
21
+ とすることで`\n`を読み捨てるか、
22
+
23
+
24
+
25
+ ```diff
26
+
27
+ -scanf("%c %d", &c, &num);
28
+
29
+ +scanf(" %c %d", &c, &num);
30
+
31
+ ```
32
+
33
+ としてみてください。
10
34
 
11
35
 
12
36
 

3

コード修正

2020/07/23 16:12

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- `scanf("%d", &n);`を`scanf("%d%*c", &n);`とすることで`\n`を読み捨てるか、
7
+ `scanf("%d", &n);`を`scanf("%d%*c", &n);`、`scanf("%c %d", &c, &num);`を`scanf("%c %d%*c", &c, &num);`とすることで`\n`を読み捨てるか、
8
8
 
9
9
  `scanf("%c %d", &c, &num);`を`scanf(" %c %d", &c, &num);`(`%c`の前にスペース)としてみてください。
10
10
 

2

動作について追記

2020/07/23 16:10

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -7,3 +7,7 @@
7
7
  `scanf("%d", &n);`を`scanf("%d%*c", &n);`とすることで`\n`を読み捨てるか、
8
8
 
9
9
  `scanf("%c %d", &c, &num);`を`scanf(" %c %d", &c, &num);`(`%c`の前にスペース)としてみてください。
10
+
11
+
12
+
13
+ 後者なら`1 A 1<ENTER>`と入力された場合でも動作します。

1

対策方法追記

2020/07/23 16:04

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,3 +1,9 @@
1
1
  `c`には`1`の後のENTER(`\n`)が格納され、
2
2
 
3
3
  `num`は`A`が数値でないため読み取られず不定値となっています。
4
+
5
+
6
+
7
+ `scanf("%d", &n);`を`scanf("%d%*c", &n);`とすることで`\n`を読み捨てるか、
8
+
9
+ `scanf("%c %d", &c, &num);`を`scanf(" %c %d", &c, &num);`(`%c`の前にスペース)としてみてください。