回答編集履歴

3

修正

2023/01/17 08:53

投稿

jimbe
jimbe

スコア12672

test CHANGED
@@ -35,7 +35,7 @@
35
35
  members[0].number = 1;
36
36
  members[0].favoriteSub[0] = "国語";
37
37
  members[0].favoriteSub[1] = "社会";
38
- members[0].favoriteSub[1] = "";
38
+ members[0].favoriteSub[2] = "";
39
39
  //(ry
40
40
  members[1] = new Member();
41
41
  members[1].name = "鈴木";

2

修正

2023/01/17 08:48

投稿

jimbe
jimbe

スコア12672

test CHANGED
@@ -30,14 +30,14 @@
30
30
 
31
31
  Member members[] = new Member[10];
32
32
 
33
- members[0] = new Members();
33
+ members[0] = new Member();
34
34
  members[0].name = "田中";
35
35
  members[0].number = 1;
36
36
  members[0].favoriteSub[0] = "国語";
37
37
  members[0].favoriteSub[1] = "社会";
38
38
  members[0].favoriteSub[1] = "";
39
39
  //(ry
40
- members[1] = new Members();
40
+ members[1] = new Member();
41
41
  members[1].name = "鈴木";
42
42
  members[1].number = 2;
43
43
  members[1].favoriteSub[0] = "国語";

1

追加

2023/01/17 08:46

投稿

jimbe
jimbe

スコア12672

test CHANGED
@@ -1,3 +1,50 @@
1
+ c と java で同じように書くと
2
+ ```c
3
+ #define CNT_MAX 10
4
+ typedef struct {
5
+ char *name;
6
+ int number;
7
+ char *favoriteSub[CNT_MAX];
8
+ } Member;
9
+
10
+ Member members[10];
11
+
12
+ members[0].name = "田中";
13
+ members[0].number = 1;
14
+ members[0].favoriteSub[0] = "国語";
15
+ members[0].favoriteSub[1] = "社会";
16
+ members[0].favoriteSub[2] = "";
17
+ //(ry
18
+ members[1].name = "鈴木";
19
+ members[1].number = 2;
20
+ members[1].favoriteSub[0] = "国語";
21
+ //(ry
22
+ ```
23
+ ```java
24
+ static final int CNT_MAX = 10;
25
+ class Member {
26
+ String name; //名前
27
+ int number; //出席番号
28
+ String favoriteSub[] = new String[CNT_MAX]; //得意科目
29
+ }
30
+
31
+ Member members[] = new Member[10];
32
+
33
+ members[0] = new Members();
34
+ members[0].name = "田中";
35
+ members[0].number = 1;
36
+ members[0].favoriteSub[0] = "国語";
37
+ members[0].favoriteSub[1] = "社会";
38
+ members[0].favoriteSub[1] = "";
39
+ //(ry
40
+ members[1] = new Members();
41
+ members[1].name = "鈴木";
42
+ members[1].number = 2;
43
+ members[1].favoriteSub[0] = "国語";
44
+ //(ry
45
+ ```
46
+ ---
47
+
1
48
  コードが java になっても考え方が c のままのようです。
2
49
  少なくとも Member の FavoriteSub が FavoriteSub[]; のままでは無く。必要な大きさを持つ配列を設定しておく必要があります。
3
50
  また、入るデータがオブジェクト毎に異なるのであれば、空白を入れての配列では無く List を用いるのが良いと思います。