黑马程序员技术交流社区

标题: 求代码实现 [打印本页]

作者: 张弗睿    时间: 2016-10-16 21:32
标题: 求代码实现
分析以下需求,并用代码实现:
        (1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
        (2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
       

作者: liudihua    时间: 2016-10-17 00:44
今天比较晚了 明天给你说
作者: jinjinjin    时间: 2016-10-17 01:05
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;
        }
}

作者: yyl010    时间: 2016-10-17 08:55
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]+" ");
                               
                }
作者: 读书可以当饭吃    时间: 2016-10-17 10:56
这个很简单啦
作者: 天河边吃紫英    时间: 2016-10-17 11:38
……这个是很基础的吧,楼主自己再想想咯,自己写出来

作者: 张弗睿    时间: 2016-10-17 22:39
yyl010 发表于 2016-10-17 08:55
int[] arr =  {6,2,9,15,1,5,20,7,18};
                //最小元素与第一位元素进行交换
                    int min =0;

哈哈 我也是这么做的
作者: liudihua    时间: 2016-10-17 22:53
/*
分析以下需求,并用代码实现:
        (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]+",");
                }
        }
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2