回答編集履歴

2

修正

2019/01/18 15:47

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -62,4 +62,6 @@
62
62
 
63
63
 
64
64
 
65
- また、C++を使うのであれば、printf/scanf よりも cout/cin を使った方が良いように思います。
65
+ ~~また、C++を使うのであれば、printf/scanf よりも cout/cin を使った方が良いように思います。~~
66
+
67
+ **修正:**実行時間の制約上、printf/scanf がより有効であるそうです。

1

追記

2019/01/18 15:47

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -15,3 +15,51 @@
15
15
  int i = (1 + r) / 2; // ⇒ int i = (l + r) / 2;
16
16
 
17
17
  > ```
18
+
19
+
20
+
21
+ ---
22
+
23
+ > 入力待ち状態が終了しない状態
24
+
25
+
26
+
27
+ 正しくは、『入力を受け取った後、無限ループに突入』です。
28
+
29
+
30
+
31
+ デバッグ用に printf を埋め込むのは非常に良いアイデアなのですが、
32
+
33
+ 効率化のためバッファリングが行われ、即時に出力されないことがあります。
34
+
35
+
36
+
37
+ 検索しても、嵌っている人はそれなりにいるようです。[Google検索 - printf バッファリング](https://www.google.com/search?q=printf+%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%83%AA%E3%83%B3%E3%82%B0&oq=printf+%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%83%AA%E3%83%B3%E3%82%B0)
38
+
39
+
40
+
41
+ ---
42
+
43
+ > エラーの再現を試みようと、... 出力されたのは0000でした。これは何故なのでしょうか。
44
+
45
+
46
+
47
+ 凡ミスです。
48
+
49
+ ```C
50
+
51
+ for (int i = 0;i <n; i++)
52
+
53
+ {
54
+
55
+ // 誤 scanf("%d", &k[n]);
56
+
57
+ scanf("%d", &k[i]);
58
+
59
+ }
60
+
61
+ ```
62
+
63
+
64
+
65
+ また、C++を使うのであれば、printf/scanf よりも cout/cin を使った方が良いように思います。