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

質問編集履歴

11

文章の編集

2019/12/07 16:59

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -26,7 +26,6 @@
26
26
  インデックス[0]番目は、以降インデックスの数(n個)を表しております。
27
27
  例ですが、入力データ1の場合は、lines[0]に5が格納されており、lines[1]〜[5]まで出力しないといけないという事です。(出力の際は改行区切りで出力しないといけないルールです)
28
28
  上記入力データ1,2を書きましたが、これはあくまで入力例であり、実際には入力されたデータは隠されており見る事ができません。
29
- (lines[0]に格納させている数字の値の文だけ出力が必要)
30
29
 
31
30
  今回の質問ですが
32
31
  問題は解けたのですが、for文を2回書いている所が気になります。

10

文章の修正

2019/12/07 16:59

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,42 @@
1
1
  ### 1行目で正の整数nが入力され、続くn行の各行で整数が1つずつ入力されます。n個の整数を小さい順に改行区切りで出力してください。
2
2
 
3
+ 実行環境はwebサイト(学習サイト)上にあります。
4
+ 入力データは、
5
+ 入力例1の場合
6
+ 5
7
+ 3
8
+ 5
9
+ 19
10
+ 1
11
+ 2
12
+ 入力データ2の場合
13
+ 10
14
+ 2
15
+ 3
16
+ 4
17
+ 5
18
+ 4
19
+ 3
20
+ 2
21
+ 1
22
+ 1
23
+ 8
24
+ になっています。
25
+ この入力データは変数linesに配列として格納されており、
26
+ インデックス[0]番目は、以降インデックスの数(n個)を表しております。
27
+ 例ですが、入力データ1の場合は、lines[0]に5が格納されており、lines[1]〜[5]まで出力しないといけないという事です。(出力の際は改行区切りで出力しないといけないルールです)
28
+ 上記入力データ1,2を書きましたが、これはあくまで入力例であり、実際には入力されたデータは隠されており見る事ができません。
29
+ (lines[0]に格納させている数字の値の文だけ出力が必要)
30
+
31
+ 今回の質問ですが
3
- という問題たのですが、for文を2回書いている所が気になります。(自分で書いておきながら)
32
+ 問題たのですが、for文を2回書いている所が気になります。
4
33
  なぜか1回目のfor文の末尾に```console.log(arr[i]);```を書くと
5
34
  3
6
35
  5
7
36
  19
8
37
  19
9
38
  19
10
- と出力されてしまいます。
39
+ と出力されてしまいます。(入力例1の場合)
11
40
  なぜ、このような出力結果になってしまうのでしょうか?
12
41
  ご回答よろしくお願いします。
13
42
 

9

コードの修正

2019/12/07 16:58

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -45,39 +45,4 @@
45
45
  console.log(arr[i]);
46
46
  }
47
47
 
48
- });
48
+ });
49
- コード
50
- ```
51
-
52
- ###
53
- あっているかどうかは分かりませんが、
54
-
55
- ループされていく値を比較関数(a-b)で比較していけば
56
- 3→5→19までは比較できるが、「19」以降の「1」、「2」は比較できないため
57
- 「19」が続いてループされているということでしょうか?
58
-
59
- a < b (判定○ 処理する)
60
- a > b (判定× 処理しない)※スキップ
61
- a == b (判定○ 処理する)
62
-
63
- 3 arr[1]
64
- ↓ 3 < 5 (判定○ 処理する)
65
- 5 arr[2]
66
- ↓ 5 < 19 (判定○ 処理する)
67
- 19 arr[3]
68
- ↓ 19 < 1 (判定× 処理しない)※スキップ
69
- 1(19) arr[4]
70
- ↓ 19 < 2 (判定× 処理しない)※スキップ
71
- 2(19) arr[5]
72
- ↓ 19 < 3 (判定× 処理しない)※スキップ
73
- 3(19) arr[1]
74
- ↓ 19 < 5 (判定× 処理しない)※スキップ
75
- 5(19) arr[2]
76
- ↓ 19 == 19 (判定○ 処理する)
77
- 19 arr[3]
78
- ↓ 
79
-
80
-
81
-
82
-
83
- みたいな事が起こっているのでしょうか?

8

追記

2019/12/07 06:19

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -47,4 +47,37 @@
47
47
 
48
48
  });
49
49
  コード
50
- ```
50
+ ```
51
+
52
+ ###
53
+ あっているかどうかは分かりませんが、
54
+
55
+ ループされていく値を比較関数(a-b)で比較していけば
56
+ 3→5→19までは比較できるが、「19」以降の「1」、「2」は比較できないため
57
+ 「19」が続いてループされているということでしょうか?
58
+
59
+ a < b (判定○ 処理する)
60
+ a > b (判定× 処理しない)※スキップ
61
+ a == b (判定○ 処理する)
62
+
63
+ 3 arr[1]
64
+ ↓ 3 < 5 (判定○ 処理する)
65
+ 5 arr[2]
66
+ ↓ 5 < 19 (判定○ 処理する)
67
+ 19 arr[3]
68
+ ↓ 19 < 1 (判定× 処理しない)※スキップ
69
+ 1(19) arr[4]
70
+ ↓ 19 < 2 (判定× 処理しない)※スキップ
71
+ 2(19) arr[5]
72
+ ↓ 19 < 3 (判定× 処理しない)※スキップ
73
+ 3(19) arr[1]
74
+ ↓ 19 < 5 (判定× 処理しない)※スキップ
75
+ 5(19) arr[2]
76
+ ↓ 19 == 19 (判定○ 処理する)
77
+ 19 arr[3]
78
+ ↓ 
79
+
80
+
81
+
82
+
83
+ みたいな事が起こっているのでしょうか?

7

コードの編集

2019/12/07 05:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -36,8 +36,8 @@
36
36
 
37
37
  for(var i=0; i<n; i++) {
38
38
  arr.push(lines[i+1]);
39
- // arr.sort(compare); 編集前
39
+ // arr.sort(compare); 編集前
40
- // console.log(arr[i]);
40
+ // console.log(arr[i]);
41
41
  }
42
42
      arr.sort(compare); // 編集後
43
43
 

6

編集

2019/12/07 03:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -39,7 +39,7 @@
39
39
  // arr.sort(compare); 編集前
40
40
  // console.log(arr[i]);
41
41
  }
42
-     arr.sort(compare); 編集後
42
+     arr.sort(compare); // 編集後
43
43
 
44
44
  for(var i=0; i<n; i++){
45
45
  console.log(arr[i]);

5

コードの編集

2019/12/07 03:10

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -36,9 +36,10 @@
36
36
 
37
37
  for(var i=0; i<n; i++) {
38
38
  arr.push(lines[i+1]);
39
+ // arr.sort(compare); 編集前
39
40
  // console.log(arr[i]);
40
41
  }
41
-     arr.sort(compare);
42
+     arr.sort(compare); 編集後
42
43
 
43
44
  for(var i=0; i<n; i++){
44
45
  console.log(arr[i]);

4

コードの修正

2019/12/07 03:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -36,9 +36,9 @@
36
36
 
37
37
  for(var i=0; i<n; i++) {
38
38
  arr.push(lines[i+1]);
39
- arr.sort(compare);
40
39
  // console.log(arr[i]);
41
40
  }
41
+     arr.sort(compare);
42
42
 
43
43
  for(var i=0; i<n; i++){
44
44
  console.log(arr[i]);

3

文の追加

2019/12/07 02:41

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 1行目で正の整数nが入力され、続くn行の各行で整数が1つずつ入力されます。n個の整数を小さい順に改行区切りで出力してください。
2
2
 
3
- という問題を解いたのですが、for文を2回書いている所が気になります。
3
+ という問題を解いたのですが、for文を2回書いている所が気になります。(自分で書いておきながら)
4
4
  なぜか1回目のfor文の末尾に```console.log(arr[i]);```を書くと
5
5
  3
6
6
  5

2

コードの修正

2019/12/07 00:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -37,7 +37,7 @@
37
37
  for(var i=0; i<n; i++) {
38
38
  arr.push(lines[i+1]);
39
39
  arr.sort(compare);
40
- console.log(arr[i]);
40
+ // console.log(arr[i]);
41
41
  }
42
42
 
43
43
  for(var i=0; i<n; i++){

1

文の追加

2019/12/07 00:52

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,19 @@
1
1
  ### 1行目で正の整数nが入力され、続くn行の各行で整数が1つずつ入力されます。n個の整数を小さい順に改行区切りで出力してください。
2
2
 
3
3
  という問題を解いたのですが、for文を2回書いている所が気になります。
4
+ なぜか1回目のfor文の末尾に```console.log(arr[i]);```を書くと
5
+ 3
6
+ 5
7
+ 19
8
+ 19
9
+ 19
4
- なぜか1回目のfor文
10
+ と出力されてしまいます。
11
+ なぜ、このような出力結果になってしまうのでしょうか?
12
+ ご回答よろしくお願いします。
5
13
 
6
14
 
7
15
 
8
16
 
9
-
10
-
11
17
  ```
12
18
  process.stdin.resume();
13
19
  process.stdin.setEncoding('utf8');