質問編集履歴

3

変更後コード追記

2018/11/11 10:53

投稿

opyon
opyon

スコア1009

test CHANGED
File without changes
test CHANGED
@@ -18,6 +18,122 @@
18
18
 
19
19
 
20
20
 
21
+
22
+
23
+ ###変更後
24
+
25
+ 課題の趣旨から外れそうなので**配列[最大要素数を指定]**にしてみます。
26
+
27
+ std::vectorが便利過ぎて慣れてしまっているので思わぬ落とし穴でした。
28
+
29
+ ```C++
30
+
31
+ #include <bits/stdc++.h>
32
+
33
+
34
+
35
+ class CBTree
36
+
37
+ {
38
+
39
+ public:
40
+
41
+ // 配列[]は初期化時に要素数を指定しておかなければならないので、
42
+
43
+ // 出題に合わせて最大サイズを指定するしか無い。
44
+
45
+
46
+
47
+ int heap[251];
48
+
49
+ CBTree()
50
+
51
+ {
52
+
53
+ heap[0] = -2000000001;//最小値-1
54
+
55
+ }
56
+
57
+ };
58
+
59
+
60
+
61
+ void alds1_9_1()
62
+
63
+ {
64
+
65
+ // 完全二分木
66
+
67
+ // Complete binary tree
68
+
69
+ int n, key;
70
+
71
+ std::cin >> n;
72
+
73
+ CBTree T;
74
+
75
+
76
+
77
+ //入力
78
+
79
+ for (int i = 1; i <= n; ++i)
80
+
81
+ {
82
+
83
+ std::cin >> T.heap[i];
84
+
85
+ }
86
+
87
+
88
+
89
+ //確認出力
90
+
91
+ for (int i = 1; i <= n; ++i)
92
+
93
+ {
94
+
95
+ std::cout << T.heap[i] << std::endl;
96
+
97
+ }
98
+
99
+ }
100
+
101
+
102
+
103
+ int main()
104
+
105
+ {
106
+
107
+ alds1_9_1();
108
+
109
+ getchar();
110
+
111
+ return 0;
112
+
113
+ }
114
+
115
+
116
+
117
+ // 5
118
+
119
+ // 7 8 1 2 3
120
+
121
+ // 7
122
+
123
+ // 8
124
+
125
+ // 1
126
+
127
+ // 2
128
+
129
+ // 3
130
+
131
+
132
+
133
+ ```
134
+
135
+
136
+
21
137
  ###追記(説明補足)
22
138
 
23
139
  例えばこういう配列の使い方をイメージしています。

2

解決

2018/11/11 10:53

投稿

opyon
opyon

スコア1009

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,23 @@
1
+ ###解決!
2
+
3
+ > サイズを指定しない場合は宣言と同時に初期化しないとならないので、
4
+
5
+ 今回のケースでは配列は固定長なので使えない
6
+
7
+ が結論です。
8
+
9
+
10
+
11
+ @asmさんの回答でスッキリしました!
12
+
13
+
14
+
15
+ 回答やコメントくださった方ありがとうございました。
16
+
17
+ いわゆる配列の初歩的な作法から調べ直してみたいと想います。
18
+
19
+
20
+
1
21
  ###追記(説明補足)
2
22
 
3
23
  例えばこういう配列の使い方をイメージしています。

1

追記 説明補足

2018/11/11 10:17

投稿

opyon
opyon

スコア1009

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,19 @@
1
+ ###追記(説明補足)
2
+
3
+ 例えばこういう配列の使い方をイメージしています。
4
+
5
+ std::vectorやpythonなどの配列の宣言の仕方ですんなり使えると思っていたのにのっけから躓いてしまっています^^;
6
+
7
+ 配列の初歩的なことから調べ直してみます。
8
+
9
+
10
+
11
+ [配列の初期化](http://wisdom.sakura.ne.jp/programming/c/c18.html)
12
+
13
+ ![イメージ説明](6b143faf340185746572a012b343e98b.png)
14
+
15
+
16
+
1
17
  ###知りたいこと
2
18
 
3
19
  クラス内に定義した配列に数値を代入しそのまま出力したいだけなのですが、