JAvaクラシックプログラミング問題(34-36)


【プログラム34】タイトル:3個の数a,b,cを入力し、サイズ順に出力します.(同15)
import java.util.Scanner;
public class Demo1 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int a = scan.nextInt();
		int b = scan.nextInt();
		int c = scan.nextInt();
		System.out.println("   :"+a+","+b+","+c);
		if(a>b){
			int t=a;
			a=b;
			b=t;
		}
		if(a>c){
			int t=a;
			a=c;
			c=t;
		}
		if(b>c){
			int t=b;
			b=c;
			c=t;
		}
		System.out.println("   :"+a+","+b+","+c);
	}
}

【運転結果】
12 5 89
ソート前:12,5,89
ソート後:5,12,89
【プログラム35】タイトル:入力配列、最大は1番目の要素と交換し、最小は最後の要素と交換し、出力配列.
import java.util.Scanner;

public class Demo1 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("       :");
		int n = scan.nextInt();
		int[] arr = new int[n];
		System.out.println("   "+n+"   :");
		for(int i=0;i<n;i++){
			arr[i]=scan.nextInt();
		}
		int max=arr[0];
		int min=arr[0];
		int maxI=0;
		int minI=0;
		
		System.out.print("   : ");
		for(int i=0;i<n;i++){
			System.out.print(arr[i]+" ");
		}
		
		for(int i=0;i<n;i++){
			if(max<arr[i]){
				max=arr[i];
				maxI=i;
			}
			if(min>arr[i]){
				min=arr[i];
				minI=i;
			}
		}
		
		
		int temp1 = arr[0];//   temp          
		int temp2 = arr[min]; 
		
		arr[0] =arr[maxI];//    a[0]    a[max]
		arr[maxI]=temp1;
		
		if(minI!=0){
			arr[min] = arr[n-1];
			arr[n-1] = temp2;
		}else{
			arr[maxI] = arr[n-1];
			arr[n-1] = temp1;
		}
		
		System.out.println();
		System.out.print("   :");
		for(int i=0;i<n;i++){
			System.out.print(arr[i]+" ");
		}
	}
}

【運転結果】
配列数を入力してください:
5
5つの整数を入力してください.
1 5 2 4 3
ソート前: 1 5 2 4 3 
ソート後:5 3 2 4 1 
【プログラム36】題目:n個の整数があり、その前の各数を順にm個の位置に後退させ、最後にm個の数が一番前のm個の数になる
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("        :");
		int n = input.nextInt();
		System.out.println("        :");
		int m = input.nextInt();
		System.out.println("   "+n+"   :");
		int[] a = new int[n];
		for(int i=0;i<n;i++){
			a[i]=input.nextInt();
		}
		System.out.println("       :");
		for(int i=0;i<n;i++){
			System.out.print(" "+a[i]);
		}
		System.out.println();
		
		System.out.println("  "+m+"     :");
		int[] b = new int[m];
		for(int i=0;i<m;i++){
			b[i]=a[n-m+i];
		}
		for(int i=n-1;i>=m;i--){
			a[i] = a[i-m];
		}
		for(int i =0 ;i<m;i++){
			a[i]=b[i];
		}
		for(int i=0;i<n;i++){
			System.out.print(a[i]+" ");
		}
		
	}
}

【運転結果】
配列の数を入力してください:
7
移動する桁数を入力してください:
3
7個の整数を入力してください.
1 2 3 4 5 6 7
入力した配列は次のとおりです.
 1 2 3 4 5 6 7
3ビット移動後の配列:
5 6 7 1 2 3 4