質問編集履歴
1
アドバイスをもとに構文を修正しました
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
データから最年長を表示したい
|
test
CHANGED
@@ -13,10 +13,10 @@
|
|
13
13
|
エラーメッセージ
|
14
14
|
```
|
15
15
|
|
16
|
-
###
|
16
|
+
### Java
|
17
17
|
|
18
18
|
```ここに言語名を入力
|
19
|
-
class
|
19
|
+
class Quiz8 {
|
20
20
|
public static void main(String[] args){
|
21
21
|
String[][] senbatsu = {
|
22
22
|
{"Name","BloodType","Year","Month","Day","HomeTown"},
|
@@ -27,7 +27,7 @@
|
|
27
27
|
{"E","B","1997","3","8","Aichi"},
|
28
28
|
{"F","B","1993","7","14","Osaka"},
|
29
29
|
{"G","A","1998","3","19","Kagoshima"},
|
30
|
-
{"H,"O","1990","8","13","Tokyo"},
|
30
|
+
{"H","O","1990","8","13","Tokyo"},
|
31
31
|
{"I","A","1994","3","30","Saitama"},
|
32
32
|
{"J","B","1992","12","8","Kyoto"},
|
33
33
|
{"K","A","1991","6","24","Aichi"},
|
@@ -38,18 +38,25 @@
|
|
38
38
|
{"P","B","1994","11","25","Tokyo"}
|
39
39
|
};
|
40
40
|
int i,j;
|
41
|
-
int maxy = Integer.parseInt(senbatsu[1][2]);
|
41
|
+
int maxy = Integer.parseInt(senbatsu[1][2]);//1列目
|
42
|
-
int maxm = Integer.parseInt(senbatsu[1][3]);
|
42
|
+
int maxm = Integer.parseInt(senbatsu[1][3]);//2列目
|
43
|
-
int maxd = Integer.parseInt(senbatsu[1][4]);
|
43
|
+
int maxd = Integer.parseInt(senbatsu[1][4]);//3列目
|
44
44
|
int maxi = 1;
|
45
45
|
int y,m,d;
|
46
|
-
for(i=2; i<senbatsu.length; i++){
|
46
|
+
for(i=2; i<senbatsu.length; i++){//1行目がタイトル行のため、2行からカウントしていく
|
47
|
-
y = Integer.parseInt(senbatsu[i][2]);
|
47
|
+
y = Integer.parseInt(senbatsu[i][2]);//年の行
|
48
|
-
m = Integer.parseInt(senbatsu[i][3]);
|
48
|
+
m = Integer.parseInt(senbatsu[i][3]);//月の行
|
49
|
-
d = Integer.parseInt(senbatsu[i][4]);
|
49
|
+
d = Integer.parseInt(senbatsu[i][4]);//日の行
|
50
|
-
|
50
|
+
int maxY = Integer.parseInt(senbatsu[maxi][2]);//年を比較した時、大きい値を記録
|
51
|
+
int maxM = Integer.parseInt(senbatsu[maxi][3]);//月を比較した時、大きい値を記録
|
52
|
+
int maxD = Integer.parseInt(senbatsu[maxi][4]);//日を比較した時、大きい値を記録
|
53
|
+
|
51
|
-
|
54
|
+
if (y<maxY || (y==maxY && m<maxM) || (y==maxY && m==maxM && d<maxD)) {
|
55
|
+
maxi = i;
|
56
|
+
//指定した年数<年の最大値 かつ (指定した年=最大値 かつ 指定した月<月の最大値) かつ (指定した年=最大値 または 指定した月=最大値 または指定した月<最大値))
|
57
|
+
//各最大値は、maxiに記録
|
52
|
-
|
58
|
+
}
|
59
|
+
}
|
53
60
|
System.out.print(senbatsu[maxi][0]);
|
54
61
|
for(j=1; j<senbatsu[maxi].length; j++){
|
55
62
|
System.out.print( ", "+senbatsu[maxi][j] );
|
@@ -58,21 +65,20 @@
|
|
58
65
|
}
|
59
66
|
}
|
60
67
|
|
68
|
+
|
61
69
|
```
|
62
70
|
|
63
71
|
### 試したこと
|
64
72
|
|
65
|
-
・生年月日の最大値の指定
|
66
|
-
|
73
|
+
みな様から頂いたアドバイスをもとに、プログラムを修正しました。
|
67
|
-
|
74
|
+
ありがとうございます!
|
68
75
|
|
76
|
+
上記プログラムで、一応、正しく実行できる様子です。
|
69
|
-
しかし、
|
77
|
+
しかし、私自信が、正しく構文を理解できているのか自信がありません。
|
70
|
-
同年や同月生まれがいる場合を考慮するため、
|
71
|
-
★行で条件分けをしようと考えています。
|
72
78
|
|
73
|
-
|
79
|
+
各行ごとにコメントで行の意味を記載しました。
|
80
|
+
間違って理解している箇所がありましたら、ご指摘いただけないでしょうか?
|
74
|
-
|
81
|
+
よろしくお願いいたします。
|
75
|
-
|
76
82
|
|
77
83
|
### 補足情報(FW/ツールのバージョンなど)
|
78
84
|
|