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】题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

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 





你可能感兴趣的:(java,二级,编程题)