A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dengxuye 中级黑马   /  2016-3-30 22:50  /  666 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组

2 个回复

倒序浏览
本帖最后由 huangkai521 于 2016-3-31 21:50 编辑

public class ArrayTest {

        public static void main(String[] args) {
                int[] arr = {4,6,5,7,21,46,11};
                //交换前
                printArray(arr);
                System.out.println("=====================");
                //调用交换方法。
                exchangeArray(arr);
                //交换前
                printArray(arr);//交换后

        }
        //定义方法获取数组元素最小值的角标。
        public static int getMin(int[] arr){
                int min = 0;
                for(int i=1;i<arr.length;i++){
                        if(arr<arr[min])
                                min = i;
                }
                return min;
        }
        //定义方法获取数组元素最大值的角标。
        public static int getMax(int[] arr){
                int max = 0;
                for(int i=1;i<arr.length;i++){
                        if(arr>arr[max])
                                max = i;
                }
                return max;
        }
        //定义方法使最大的与第一个元素交换,最小的与最后一个元素交换。
        public static void exchangeArray(int[] arr){
                int max =getMax(arr);
                int temp1=arr[0];
                arr[0] = arr[max];
                arr[max]=temp1;
               
                int min =getMin(arr);
                int temp2=arr[arr.length-1];
                arr[arr.length-1] = arr[min];
                arr[min]=temp2;
        }
        //打印数组的方法。
        public static void printArray(int[] arr){
                String str = "[";
                for(int i=0;i<arr.length;i++){
                        if(i==arr.length-1){
                                str+=arr+"]";
                        }
                        else str+=arr+",";
                }
                System.out.println(str);
        }
回复 使用道具 举报
class Demo_Array {
        public static void main(String[] args) {
                int[] arr = {12,32,44,5,31,17,38};                        //定义数组
                print(arr);
                swap(arr);
                print(arr);
        }
        //得到数组最大值的方法
        public static int getMax(int[] arr){
                int max = arr[0];                                                        //设定最大值是数组第一个元素
                for (int i = 1;i < arr.length ;i++ ) {                //循环遍历
                        if (max < arr[i]) {                                                //假如数组中有比max大的值
                                max = arr[i];                                                //把这个值赋值给max
                        }
                }
                return max;                                                                        //返回最大值
        }
        //得到数组最小值的方法
        public static int getMin(int[] arr){
                int min = arr[0];                                                //设定最小值是数组第一个元素
                for (int i = 1;i < arr.length ;i++ ) {        //循环遍历
                        if (min > arr[i]) {                                        //假如数组中有比min小的值
                                min = arr[i];                                        //把这个值赋值给min
                        }
                }
                return min;                                                                //返回最小值
        }
        //交换值的方法,直接把最大值交换给第一个元素,把最小值交换给最后一个元素
        public static void swap(int[] arr){
                int max = getMax(arr);                        //方法中调用别的方法获取数组最大值
                int min = getMin(arr);                        //获取最小值
                for (int i = 0;i < arr.length ;i++ ) {
                        if (max == arr[i]) {                //找到最大值对应的数组元素,与第一个元素交换
                                int temp = arr[i];
                                arr[i] = arr[0];
                                arr[0] = temp;
                        }
                        if (min == arr[i]) {                //找到最小值对应的数组元素,与最后一个元素交换
                                int temp = arr[i];
                                arr[i] = arr[arr.length - 1];
                                arr[arr.length - 1] = temp;
                        }
                }
        }
        //遍历数组的方法
        public static void print(int[] arr){
                for (int i = 0; i < arr.length ;i++ ) {
                        System.out.print(arr[i] + " ");
                }
                System.out.println();
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马