回答編集履歴

4

追記

2019/01/18 01:32

投稿

azuapricot
azuapricot

スコア2341

test CHANGED
@@ -1,6 +1,4 @@
1
1
  動作確認済みです。
2
-
3
- 配列の指定箇所に入力した値を挿入できればいいんですよね?
4
2
 
5
3
 
6
4
 

3

修正完了

2019/01/18 01:32

投稿

azuapricot
azuapricot

スコア2341

test CHANGED
@@ -20,33 +20,47 @@
20
20
 
21
21
  }
22
22
 
23
- //以下わからないと言っていたところ。
23
+
24
24
 
25
- int[] NewArray = new int[arr.length]; //arr.length-1 -1を消しました。
25
+ int[] NewArray = new int[arr.length + 1]; //新配列は元配列の長さ + 1
26
+
27
+ boolean check = false; //要素に入力値を代入したかどうかのチェック
26
28
 
27
29
 
28
30
 
29
- for (int i=0; i < arr.length; i++) { //別クラスで指定した配列の長さ分回します。
31
+ for (int i=0; i < arr.length + 1; i++) {
30
32
 
31
33
 
32
34
 
33
- if (i == index) { //指定indexと同じ i なった場合
35
+ if (check) { //入力値を新配列に代入済みの場合
34
36
 
35
37
 
36
38
 
37
- NewArray[i] = InValue; //新配列に入力した新しい数字を代入します。
39
+ NewArray[i] = arr[i - 1]; //index考えながら代入
38
-
39
- System.out.println("NewArray:" + NewArray[i]);
40
40
 
41
41
 
42
42
 
43
- } else { //指定indexと 違う i の場合
43
+ } else { //まだ代入されてない場合
44
44
 
45
45
 
46
46
 
47
- NewArray[i] = arr[i]; //新配列には元数字を代入します。
47
+ if (i == index) { //新配列のindexがたindexと同じになった場合
48
48
 
49
+
50
+
49
- System.out.println("NewArray:" + NewArray[i]);
51
+ NewArray[i] = InValue; //入力値を代入
52
+
53
+ check = true; //フラグをONにする
54
+
55
+
56
+
57
+ } else { //まだ入力値のindexと同じでない場合
58
+
59
+
60
+
61
+ NewArray[i] = arr[i]; //何も考えず代入
62
+
63
+ }
50
64
 
51
65
  }
52
66
 
@@ -58,6 +72,8 @@
58
72
 
59
73
  }
60
74
 
75
+
76
+
61
77
  ```
62
78
 
63
79
 
@@ -66,4 +82,20 @@
66
82
 
67
83
 
68
84
 
85
+ 超簡単にやるために要素に値を代入したかどうかのチェックを入れました。
86
+
87
+ (あまりチェックを多用するのはおすすめされてませんが・・・。)
88
+
89
+
90
+
91
+ よく考えなければいけないのは代入した後のindexの処理ですね。
92
+
93
+ 恐らくここで躓いていたのではないでしょうか。
94
+
95
+ それ以前でしたら、残念ながらfor文と配列を1から勉強してくださいとしか言えません。
96
+
97
+
98
+
99
+ 質問者さんにお願いですが、『コピーしてはい!できた~おわり!』ではなく、
100
+
69
- あ~、もしかして指定したindexの後ろに新しい数字代入・・・?のでしたらょっ変えますね
101
+ System.out.println()など駆使てどんな動きになってるかき理解してください。

2

修正告知

2019/01/18 01:31

投稿

azuapricot
azuapricot

スコア2341

test CHANGED
@@ -62,12 +62,8 @@
62
62
 
63
63
 
64
64
 
65
- 超簡単なやり方なので冗長な部分があるかもしれませんが、配列をまだ理解できていないようなので
66
-
67
- これくらいで大丈夫かと・・・?
65
+ ---
68
66
 
69
67
 
70
68
 
71
- 配列というより、for文の回し方に難ありなのでしょうか。
72
-
73
- System.out.println()をうまく使ってこ時はこの値が出てる、この時には・・・と繰り返いろいろな箇所を出力してみる理解につながるかもしれせん。
69
+ あ~、もしかして指定したindex後ろに新し数字を代入したい・・・?のでたらちょっ変えすね

1

追記

2019/01/18 01:02

投稿

azuapricot
azuapricot

スコア2341

test CHANGED
@@ -59,3 +59,15 @@
59
59
  }
60
60
 
61
61
  ```
62
+
63
+
64
+
65
+ 超簡単なやり方なので冗長な部分があるかもしれませんが、配列をまだ理解できていないようなので
66
+
67
+ これくらいで大丈夫かと・・・?
68
+
69
+
70
+
71
+ 配列というより、for文の回し方に難ありなのでしょうか。
72
+
73
+ System.out.println()をうまく使ってこの時はこの値が出ている、この時には・・・と繰り返しいろいろな箇所を出力してみると理解につながるかもしれません。