Javaの学習を始めて18日くらいの人のための問題集

Java

メソッドと配列の練習問題。

Q
以下の手順で実行例の処理を実現せよ。
1.配列のクローンを返却するメソッドを作成する。
public static int[] cloneArr(int[] arr){}
2.配列を昇順に並び替えるメソッドを作成する。
public static void sortArr(int[] arr){}
3.2で作ったメソッドをオーバーロードし、第二引数でtrueを渡されると降順ソートするメソッドを作成する。
public static void sortArr(int[] arr,boolean isDesc){}
4.配列を以下のフォーマットで出力するメソッドを作成する。
public static void printArr(int[] arr){}
printArrで作成した文字列の例
{2,9,6,3,8}
5.Mainメソッドにて以下の処理を実現する。なお、最初に作る配列は-10~10の乱数で埋め尽くすこと。

[実行例]

配列の要素数を入力してください>10
配列を生成しました。
{-2,0,8,2,-4,3,7,0,-4,-9}
1...元の配列を表示,2...配列を昇順ソート,3...配列を降順ソート,4...終了>2
{-9,-4,-4,-2,0,0,2,3,7,8}
1...元の配列を表示,2...配列を昇順ソート,3...配列を降順ソート,4...終了>3
{8,7,3,2,0,0,-2,-4,-4,-9}
1...元の配列を表示,2...配列を昇順ソート,3...配列を降順ソート,4...終了>1
{-2,0,8,2,-4,3,7,0,-4,-9}
1...元の配列を表示,2...配列を昇順ソート,3...配列を降順ソート,4...終了>4
アプリケーションを終了します
import java.util.*;
class Q1{
	public static void main(String[] args){
		Scanner s=new Scanner(System.in);
		Random rand=new Random();
		System.out.print("配列の要素数を入力してください>");
		int len=s.nextInt();
		int[] orgArr=new int[len];
		for(int i=0;i<orgArr.length;i++){
			orgArr[i]=rand.nextInt(21)-10;
		}
		System.out.println("配列を生成しました。");
		printArr(orgArr);
		//作業用配列の生成
		int[] tempArr=cloneArr(orgArr);
		while(true){
			System.out.print("1...元の配列を表示,2...配列を昇順ソート,3...配列を降順ソート,4...終了>");
			int select=s.nextInt();
			switch(select){
			case 1:
				printArr(orgArr);
				break;
			case 2:
				sortArr(tempArr);
				printArr(tempArr);
				break;
			case 3:
				sortArr(tempArr,true);
				printArr(tempArr);
				break;
			case 4:
				System.out.println("アプリケーションを終了します");
				s.close();//スキャナークローズ
				System.exit(0);//アプリ強制終了(0は正常終了を意味する)
			}	
		}		
	}
	public static int[] cloneArr(int[] arr){
		int[] retArr=new int[arr.length];
		for(int i=0;i<arr.length;i++){
			retArr[i]=arr[i];
		}
		return retArr;
	}
	public static void sortArr(int[] arr){
		for(int i=0;i<arr.length-1;i++){
			for(int j=i+1;j<arr.length;j++){
				if(arr[i] > arr[j]){
					int temp=arr[i];
					arr[i]=arr[j];
					arr[j]=temp;
				}
			}
		}
	}
	public static void sortArr(int[] arr,boolean isDesk){
		for(int i=0;i<arr.length-1;i++){
			for(int j=i+1;j<arr.length;j++){
				if(!isDesk && arr[i] > arr[j] || isDesk && arr[i] < arr[j]){
					int temp=arr[i];
					arr[i]=arr[j];
					arr[j]=temp;
				}
			}
		}
	}
	public static void printArr(int[] arr){
		System.out.print("{");
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+(i==arr.length-1 ? "":","));
		}
		System.out.println("}");
	}
}

コメント

タイトルとURLをコピーしました