前提・実現したいこと
3つのメソッドを使って配列を昇順、降順にする処理を作成したい。
発生している問題・エラーメッセージ
昇順、降順にしたものが出力できない。 (出力のやり方がわからない。)
該当のソースコード
Java ソースコード package sample; public class Kadai5_7 { public static void main(String[] args) { //配列データの宣言・初期化 int[] arrays1 = { 96, 45, 31, 29, 84, 77 }; //並び替え前の配列内を表示 display(arrays1, false); //昇順で並び替えを実施 arraysSort(arrays1, true); //並び替え後の配列内を表示 display(arrays1, true); //降順で並び替えを実施 arraysSort(arrays1, false); //並び替え後の配列内を表示 display(arrays1, true); } public static void arraysSort(int[] array, boolean orderType) { if (orderType == true) { for (int i = 0; i < array.length; i++) { for (int j = i; j <array.length; j++) { if (array[i] < array[j]) { change(array, i, j); } } } } else { for (int i = 0; i < array.length; i++) { for (int j = i; j <array.length; j++) { if (array[i] > array[j]) { change(array, i, j); } } } } } public static void display(int[] array, boolean isSorted) { if (isSorted == true) { System.out.println("****並び替え後****"); } else { System.out.println("****並び替え前****"); for (int i = 0; i < array.length ; i++) { System.out.print(array[i] + ","); } } } public static void change(int[] array, int i, int j) { int [] tmp = new int [array.length]; tmp[i] = array[i]; tmp[j] = array[j]; array[i] = tmp[i]; array[j] = tmp[j]; } }
試したこと
public static void display関数の中で出力処理を考えたが、うまくいかなかった。
補足情報(FW/ツールのバージョンなど)
eclipse
『うまくいかない』というのはやめましょう。そういうのは『主観』でしかないです。
今回はコードから予想が付きますが、基本的には予想が出来ない事が多いです。
ファイルの文字コードが違う、ディレクトリ(フォルダ)が無い、パスが間違っている……
いろんな可能性があります。
「だったら聞けばいいだろ」と思いますか?
回答者は質問者ではありません。
なので逐一聞かないとわかりません。ですが、回答者はPCやケータイに張り付いているわけではありません。
よって、ちゃんと書くべきです。
承知いたしました。
ただ並び替えた後の出力方法がいまいちわかりません。
そのままfor文で回しても並び替えた前しか出力されないのですがどうすればいいでしょうか
いや、私の回答読んだ?
ちゃんと読めばわかるはずだが…
『うざいから読んでない』とかで無い限り、読めば対策が立てられるはずです。
(以下削除)
ちなみに質問者さんを馬と鹿にするつもりは全くありません。あしからず。
承知しました。
後ほど熟読いたします
回答2件
あなたの回答
tips
プレビュー