回答編集履歴

1

前半の区切りがわかりにくいので、修正にあわせて加筆

2018/02/22 03:04

投稿

momon-ga
momon-ga

スコア4820

test CHANGED
@@ -14,9 +14,21 @@
14
14
 
15
15
  と、なっています。
16
16
 
17
+
18
+
17
19
  int配列の初期値は0なので、0かインデックスが保存されます。
18
20
 
19
- 上記の例だと最初の2以外は全部、インデックスが保存されす。
21
+ 上記の例だと最初の2以外は全部、インデックスが保存されるかつ、返却る配列は元のaと同じ大きさ
22
+
23
+
24
+
25
+ というわけで、やりたいことを書いてあることが違うので、うまくいきません。
26
+
27
+ ~~~~~
28
+
29
+ で、ここから
30
+
31
+ やりたいことを、そのまま書く方法についてです。
20
32
 
21
33
 
22
34
 
@@ -28,15 +40,31 @@
28
40
 
29
41
  まずは頭で考えたことを、愚直にコードにすればよいです。
30
42
 
43
+ 人は頭が良いので、複数のことを同時に処理できちゃうのですが、プログラミングは
44
+
45
+ ひとつひとつの手順をきちんと書く(プログラミングする)必要があります。
46
+
47
+
48
+
49
+ 0. 配列aの要素の最大値を探して記録する
50
+
51
+ 0. 記録した最大値が配列aの中に何個あるか記録する
52
+
53
+ 0. 返却用の配列を作成して最大値のインデックスを記録する
54
+
55
+
56
+
31
57
  maは、最大値を保存する変数と思われますので、上記の場合、6を保存します。
32
58
 
33
59
  あとは、6が何回でるかをループで検索します。(2回)
34
60
 
35
- つぎに、要素数2の配列'mai'を作って、もう1回ループして要素保存します。
61
+ 最後に、要素数2の配列'mai'を作って、もう1回ループしてインデックス格納します。
36
62
 
37
63
 
38
64
 
39
65
  tkturbo さんの回答で十分だと思いますが、さらに愚直に。
66
+
67
+ 効率性は、あとから気にすればよいですが、まずは頭で考えたことを、そのままコード化してみましょう。
40
68
 
41
69
 
42
70