###実現したいこと
私はJavaプログラミング初心者です。
私は絶対値の小さい順に配列を並べ替えるプログラムと配列の各要素を正の整数rで割った余りの小さい順に並べ替えるプログラムを以下の条件のもと、以下のように作成しましたが、表示させるところで、後述のエラーメッセージが出てしまいます。
私が実現したいことは並べ替えた後の配列を、きちんと並べ替えができているかを確認するため、それぞれ表示させたいということです。
以下のプログラムで、どう書き直せば配列がきちんと並べ替えているかを確認できるか、ご教授願えると幸いです。
###条件
(メソッド名) sort1
(引数 1) int[] x
(戻値) なし
(メソッド名) sort2
(引数 1) int[] x
(戻値) なし
###表示されるエラーメッセージ
型PrintStreamのメソッドprint(boorean)
は引数(void
)に適用できません。
###作成したプログラム
public static void main(String[] args) { int[]x= {2,3,2,-1,-4}; int[]z= {2,3,2,1,4}; System.out.print(sort1(z));//ここと、 System.out.print(sort2(z,r));//ここをどう書き直せばいいのか詰まっている状況です public static void sort1(int[]x) { for(int i=0; i<x.length; i++){ for(int j=0; j<x.length-i; j++){ if (Math.abs(x[i]) > Math.abs(x[j])) { int temp = x[i]; x[i] = x[j]; x[j] = temp; } } } } public static void sort2(int[]x,int r) { for(int i=0; i<x.length; i++){ for(int j=0; j<x.length-i; j++){ if (x[i]%r>x[j]%r) { int temp = x[i]; x[i] = x[j]; x[j] = temp; } } } }
###これまでやったこと
System.out.print(toString(sort1(x)));
System.out.print(toString(sort2(z,r)));
→同様のエラーメッセージ
System.out.print(Arrays.toString(sort1(x)));
System.out.print(Arrays.toString(sort2(z,r)));
→同様のエラーメッセージ
###指摘の通りに書き直したプログラムと課題
指摘の通りにプログラムを書き直しました。
public static void main(String[] args) { int[]x={2,3,2,-1,-4}; int[]z={2,3,2,1,4}; int r=4; sort1(x); sort2(z,r); } public static void sort1(int[]x) { for(int i=0; i<x.length; i++){ for(int j=0; j<x.length-i; j++){ if (Math.abs(x[i])<Math.abs(x[j])) { int t = x[i]; x[i] = x[j]; x[j] = t; System.out.print(x[i]); System.out.println(); } } } } public static void sort2(int[]x,int r) { for(int i=0; i<x.length; i++){ for(int j=0; j<x.length-i; j++){ if (x[i]%r < x[j]%r) { int t = x[i]; x[i] = x[j]; x[j] = t; System.out.print(x[i]); System.out.println(); } } } }
しかし出力画面には
3 -4 -4 -4 2 3 3 3 2 1
と表示されるのですが、これはどこの部分が違うからなのでしょうか。色々変えてみましたが分からなかったので、ご教授願えると幸いです。
回答1件
あなたの回答
tips
プレビュー