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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张弗睿 中级黑马   /  2016-10-16 21:32  /  1251 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

分析以下需求,并用代码实现:
        (1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
        (2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
       

7 个回复

倒序浏览
今天比较晚了 明天给你说
回复 使用道具 举报
import java.util.Arrays;

public class Test02 {

        /**
         * 分析以下需求,并用代码实现:
        (1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
        (2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
         */
        public static void main(String[] args) {
                int arr[] ={6,2,9,15,1,5,20,7,18};
                //最大值
                int a = arr[getmax(arr)];
                //最小值
                int b = arr[getmin(arr)];
                //打印最大值和最小值
                System.out.println(a+" "+b);
                //遍历打印原数组
                System.out.println(Arrays.toString(arr));
                //交换最大值和最小值
                swap(arr, getmax(arr), getmin(arr));
                //遍历打印交换最大和最小值后的数组
                System.out.println(Arrays.toString(arr));
                //交换第一个和最后一个的元素
                swap(arr, 0, arr.length-1);
                //遍历打印交换第一个和最后一个的元素的数组
                System.out.println(Arrays.toString(arr));
        }
        //最大数和最大数的索引
        public static int getmax(int[] arr){
                int max = arr[0];
                int indexMax =0;
                for (int i = 1; i < arr.length; i++) {
                        if(max<arr[i]){
                                max = arr[i];
                                indexMax=i;
                        }
                }
                return indexMax;
        }
       
        //最小数和最小数的索引
        public static int getmin(int[] arr){
                int min= arr[0];
                int indexMin =0;
                for (int i = 1; i < arr.length; i++) {
                        if(min>arr[i]){
                                min = arr[i];
                                indexMin =i;
                        }
                }
                return indexMin;
        }
       
        //数组交换两个元素
        public static void swap(int[] arr,int i,int j){
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
        }
}
回复 使用道具 举报 1 0
int[] arr =  {6,2,9,15,1,5,20,7,18};
                //最小元素与第一位元素进行交换
                    int min =0;
                    for (int i = 0; i < arr.length; i++) {
                                if (arr[min]>arr[i]) {
                                        int temp = arr[min];
                                        arr[min ] = arr[i];
                                        arr[i]=temp;
                                }
                        }
                    //测试打印数组
                  for (int i = 0; i < arr.length; i++) {
                          if (i == arr.length-1)
                                System.out.println(arr[i]);
                        else
                         System.out.print(arr[i]+" ");
                       
                }
                  //最大元素与最后一位元素进行交换
                    int max =arr.length-1;
                    for (int i = 0; i < arr.length; i++) {
                            if (arr[max]<arr[i]) {
                                        int temp = arr[max];
                                        arr[max ] = arr[i];
                                        arr[i]=temp;
                                }
                        }
                    //测试打印数组
                   for (int j = 0; j < arr.length; j++) {
                           if (j == arr.length-1)
                                        System.out.println(arr[j]);
                                else
                                 System.out.print(arr[j]+" ");
                               
                }
回复 使用道具 举报
这个很简单啦
回复 使用道具 举报
……这个是很基础的吧,楼主自己再想想咯,自己写出来
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
yyl010 发表于 2016-10-17 08:55
int[] arr =  {6,2,9,15,1,5,20,7,18};
                //最小元素与第一位元素进行交换
                    int min =0;

哈哈 我也是这么做的
回复 使用道具 举报
/*
分析以下需求,并用代码实现:
        (1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
        (2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
*/

public class Test{
        public static void main(String[] args){
                int[] arr = {6,2,9,15,1,5,20,7,18};
               
                int max = arr[0];
                int min = arr[0];
                int maxIndex= 0;
                int minIndex = 0;
                int temp = 0;
                for(int i=0; i<arr.length; i++){//通过遍历获取最大值和最小值以及其索引
                        if(min>arr[i]){
                                min = arr[i];
                                minIndex = i;
                        }else if(max < arr[i]){
                                max = arr[i];
                            maxIndex = i;
                        }
                }       
               
                temp = arr[maxIndex];             // 数组最大元素与最后一位元素进行交换
                arr[maxIndex] = arr[arr.length-1];
                arr[arr.length-1] = temp;
               
                temp = arr[minIndex];             //最小元素与第一位元素进行交换
                arr[minIndex] = arr[0];
                arr[0] = temp;  
               
                for(int i=0; i<arr.length; i++){ //打印数组
                    System.out.print(arr[i]+",");
                }
        }
}


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马