teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

2024/03/04 09:41

投稿

TN8001
TN8001

スコア10114

answer CHANGED
@@ -1,81 +1,82 @@
1
- ソート自体はもうできていますよね?
2
- > この文の中にある出力順を選択する文を省いて降順のみを出力したいです。
3
-
4
- 昇順・降順を選べる機能がいらないよ」って話だと思うんですが、それならば
5
- * その表示をやめる
6
- * 降順を選んだことにする
7
-
8
- ってだけで済みますよね
9
- ```Java
10
- System.out.print("出力順選択してください。(1:昇順2:降順):");
11
- int kbn = stdIn.nextInt();
12
- ```
13
- ここを、
14
- ```Java
15
- // System.out.print("出力順を選択してくい。(1:昇順、2:降順):");
16
- int kbn = 2; //stdIn.nextInt();
17
- ```
18
- こうするだけで他は一切変えずに、目的を達成できると思います。
19
-
20
- ---
21
-
22
- 上のテクニックで入力もしたことにするようにした、テスト用コード
23
- 同じ数字があっ場合、どうればいのかわからないのでそのまま。
24
- ```Java
25
- public class Main {
26
- public static void main(String[] args) {
27
- // Scanner stdIn = new Scanner(System.in);
28
- // System.out.print("整数=");
29
- // int n = stdIn.nextInt();
30
- // int[] num = new int[n];
31
- // for (int i = 0; i < n; i++) {
32
- // System.out.print("整数" + (i + 1) + ":");
33
- // num[i] = stdIn.nextInt();
34
- // }
35
-
36
-
37
- // 毎回入力するのはだるいので入力したことにする
38
- int[] num = { 8, 6, 9, 2, 9, 0, 7 };
39
- int n = num.length;
40
-
41
-
42
- for (int i = n - 1; 0 < i; i--) {
43
- for (int j = 0; j < i; j++) {
44
- if (num[j + 1] < num[j]) {
45
- int w = num[j];
46
- num[j] = num[j + 1];
47
- num[j + 1] = w;
48
- }
49
- }
50
- }
51
-
52
-
53
- // ここも入力したことにする
54
- // System.out.print("出順を選択てください。(1:昇順、2:降順):");
55
- int kbn = 2; //stdIn.nextInt();
56
-
57
-
58
- if (kbn == 1) {
59
- for (int i = 0; i < n; i++) {
60
- if (i == n - 1) {
61
- System.out.print(num[i]);
62
- } else {
63
- System.out.print(num[i] + " < ");
64
- }
65
- }
66
- } else if (kbn == 2) {
67
- for (int i = n - 1; 0 <= i; i--) {
68
- if (i == 0) {
69
- System.out.print(num[i]);
70
- } else {
71
- System.out.print(num[i] + " > ");
72
- }
73
- }
74
- }
75
- }
76
- }
77
- ```
78
- 実行結果
79
- ```
80
- 9 > 9 > 8 > 7 > 6 > 2 > 0
1
+ ソート自体はもうできていますよね?
2
+ > この文の中にある出力順を選択する文を省いて降順のみを出力したいです。
3
+
4
+ 昇順・降順を選べる機能がいらないよ」って話だと思うんですが、それならば
5
+ * その表示をやめる
6
+ * 降順を選んだことにする
7
+
8
+ ってだけで済みますよね
9
+
10
+ ここを、
11
+ ```Java
12
+ System.out.print("出力順を選択してください。(1:昇順、2:降順):");
13
+ int kbn = stdIn.nextInt();
14
+ ```
15
+ こうするけで他は一切変えずに、目的を達成できると思ます
16
+ ```Java
17
+ // System.out.print("出力順を選択してください。(1:昇順、2:降順):");
18
+ int kbn = 2; //stdIn.nextInt();
19
+ ```
20
+
21
+ ---
22
+
23
+ 上のテクニックで入力もしことにうにした、テスト用コード
24
+ 同じ数字があった場合、どうすればよいのかわからないのでそのまま。
25
+ ```Java
26
+ public class Main {
27
+ public static void main(String[] args) {
28
+ // Scanner stdIn = new Scanner(System.in);
29
+ // System.out.print("整数=");
30
+ // int n = stdIn.nextInt();
31
+ // int[] num = new int[n];
32
+ // for (int i = 0; i < n; i++) {
33
+ // System.out.print("整数" + (i + 1) + ":");
34
+ // num[i] = stdIn.nextInt();
35
+ // }
36
+
37
+
38
+ // 毎回入力するのはだるいので入力したことにする
39
+ int[] num = { 8, 6, 9, 2, 9, 0, 7 };
40
+ int n = num.length;
41
+
42
+
43
+ for (int i = n - 1; 0 < i; i--) {
44
+ for (int j = 0; j < i; j++) {
45
+ if (num[j + 1] < num[j]) {
46
+ int w = num[j];
47
+ num[j] = num[j + 1];
48
+ num[j + 1] = w;
49
+ }
50
+ }
51
+ }
52
+
53
+
54
+ // ここも入力したことにする
55
+ // System.out.print("出力順を選択してください。(1:昇順、2:降順):");
56
+ int kbn = 2; //stdIn.nextInt();
57
+
58
+
59
+ if (kbn == 1) {
60
+ for (int i = 0; i < n; i++) {
61
+ if (i == n - 1) {
62
+ System.out.print(num[i]);
63
+ } else {
64
+ System.out.print(num[i] + " < ");
65
+ }
66
+ }
67
+ } else if (kbn == 2) {
68
+ for (int i = n - 1; 0 <= i; i--) {
69
+ if (i == 0) {
70
+ System.out.print(num[i]);
71
+ } else {
72
+ System.out.print(num[i] + " > ");
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ ```
79
+ 実行結果
80
+ ```
81
+ 9 > 9 > 8 > 7 > 6 > 2 > 0
81
82
  ```