JAvaクラシックプログラミング問題(34-36)
【プログラム34】タイトル:3個の数a,b,cを入力し、サイズ順に出力します.(同15)
【運転結果】
12 5 89
ソート前:12,5,89
ソート後:5,12,89
【プログラム35】タイトル:入力配列、最大は1番目の要素と交換し、最小は最後の要素と交換し、出力配列.
【運転結果】
配列数を入力してください:
5
5つの整数を入力してください.
1 5 2 4 3
ソート前: 1 5 2 4 3
ソート後:5 3 2 4 1
【プログラム36】題目:n個の整数があり、その前の各数を順にm個の位置に後退させ、最後にm個の数が一番前のm個の数になる
【運転結果】
配列の数を入力してください:
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
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