質問編集履歴

3

コードを修正しました

2023/06/02 00:17

投稿

JAVA-B1
JAVA-B1

スコア4

test CHANGED
File without changes
test CHANGED
@@ -15,7 +15,8 @@
15
15
 
16
16
  ### 該当のソースコード
17
17
 
18
+
18
- ```
19
+ ```Java
19
20
  class Quiz9A {
20
21
  public static void main(String[] args) {
21
22
  String[][] senbatsu = {
@@ -68,6 +69,7 @@
68
69
  }
69
70
  }
70
71
  }
72
+ ```
71
73
 
72
74
 
73
75
  ```

2

ソースコードを修正しました。

2023/06/02 00:05

投稿

JAVA-B1
JAVA-B1

スコア4

test CHANGED
File without changes
test CHANGED
@@ -6,15 +6,12 @@
6
6
 
7
7
  ・senbatsuの情報を並び替える
8
8
  ・アルファベット順になるようにする
9
- ・「 ////ここから書き換える////」「/////ここまで////」の間のプログラムを変更したい
10
9
 
11
10
 
12
11
  ### 発生している問題・エラーメッセージ
13
12
 
14
- ・1行目と2行目の}が無い
15
- (個数はあっている思うのですが、終点と認識しません)
13
+ ・みな様からのアドバイスをもにプログラムを修正したのですが、
16
-
17
- アルファベット順に表示するプログラム作成できているのか自信がありません。
14
+ ”name”の列をアルファベット順にソートすることができません。
18
15
 
19
16
  ### 該当のソースコード
20
17
 
@@ -43,28 +40,25 @@
43
40
  int k,i,j,leadi;
44
41
  String lead, tmp;
45
42
  for(k=1; k<senbatsu.length-1; k++){
46
-
47
- ////ここから書き換える////
43
+
48
-
49
- //K行目以降で最高(アルファベット順でA)を探す
44
+ // k行目以下の先頭leadとその行番号leadiを探す
50
- String lead =senbatsu[1][0];
51
- int leadi = 1;
52
- for(k=2;k<senbatsu.length;k++){
53
- if(lead.compareTo(senbatsu[k][0])>0){
54
- leas =senbatsu[k][0];
45
+ lead = senbatsu[k][0];
55
- leadi =k;
46
+ leadi = k;
47
+ for (i=k+1; i < senbatsu.length; i++) {
48
+ if(senbatsu[i][0].compareTo(lead)>0){
49
+ lead =senbatsu[i][0];
50
+ leadi =i;
56
51
  }
52
+
53
+ // k行とleadi行(先頭行)を入替.入替時に変数tmpを使用する
54
+ for (j = 0; j < senbatsu[0].length; j++) {
55
+ tmp = senbatsu[k][j];
56
+  senbatsu[k][j] = senbatsu[leadi][j];
57
+   senbatsu[leadi][j] = tmp;
58
+     }
59
+ }
57
60
  }
58
-
59
- // k行とleadi行(先頭行)を入替.入替時に変数tmpを使用する
60
- for(j=0;j<senbatsu[0].length;j++){
61
- tmp = senbatsu[k][j];
62
- senbatsu[k][j] = senbatsu[leadi][j];
63
- senbatsu[leadi][j] = tmp;
64
- }
65
- }
66
-
67
- /////ここまで////
61
+ /////
68
62
  for(i=0; i<senbatsu.length; i++){
69
63
  System.out.print(senbatsu[i][0]);
70
64
  for(j=1; j<senbatsu[i].length; j++){
@@ -75,17 +69,20 @@
75
69
  }
76
70
  }
77
71
 
72
+
78
73
  ```
79
74
 
80
75
  ### 試したこと
81
76
 
82
- 辞書順でA先頭持ってくる場合、先頭値をleadとて、
77
+ 29行目次のよう変更ました。
78
+ 変更前:i=k
83
- if(lead.compareTo(senbatsu[k][0])>0)で比較することまでわかりました。
79
+ 変更後:i=k+1
84
- し、アルファベット順(並び替えさせる方法がわかりせんでした。
80
+ ※先頭行の次ら比較対象とすためi=k+1ました。
85
81
 
82
+ しかし、上記に変更しても、最初の4行までしか入れかえを行うことができません。
83
+ どの箇所がまちがっているのか、アドバイスいただけないでしょうか。
84
+ よろしくお願いいたします。
86
85
 
87
- どのようにすればよいか、ご教示いただけないでしょうか。
88
- よろしくお願いいたします。
89
86
 
90
87
  ### 補足情報(FW/ツールのバージョンなど)
91
88
 

1

コードにミスがあったため、修正しました。

2023/05/26 04:10

投稿

JAVA-B1
JAVA-B1

スコア4

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  ### 該当のソースコード
20
20
 
21
- ```ここに言語名を入力
21
+ ```
22
22
  class Quiz9A {
23
23
  public static void main(String[] args) {
24
24
  String[][] senbatsu = {