回答編集履歴
2
fix
test
CHANGED
@@ -10,4 +10,4 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
書式指定としての`\n`は「
|
13
|
+
書式指定としての`\n`は「その位置に改行文字を要求する」ことを意味します。つまり`"%d\n"`は「数値+改行文字」の入力を待機するため、「`1`, (改行a), `2`, (改行b)」という入力に対し改行aは"改行文字"として消化されてしまい、(改行b)でやっと1回目の`scanf`呼び出しが完了します。このとき`2`は解釈されずに残っているため、次回の`scanf`呼び出しで消化されるという動きになります。
|
1
update
test
CHANGED
@@ -7,3 +7,7 @@
|
|
7
7
|
scanf("%d", &data[i]);
|
8
8
|
|
9
9
|
```
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
書式指定としての`\n`は「任意個の空白文字または改行文字を要求する」ことを意味します。つまり`"%d\n"`は「数値+空白or改行」の入力を待機するため、「`1`, (改行a), `2`, (改行b)」という入力に対し改行aは"空白or改行"として消化されてしまい、(改行b)でやっと1回目の`scanf`呼び出しが完了します。このとき`2`は解釈されずに残っているため、次回の`scanf`呼び出しで消化されるという動きになります。
|