黑马程序员技术交流社区

标题: 数组 [打印本页]

作者: axiaowenjin    时间: 2016-7-4 23:46
标题: 数组
2.分析以下需求,并用代码实现:
        (1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
        (2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
        提示思路:先查找最大值和最小值出现的索引。

class day52 {
                public static void main(String[] args) {
                int arr[]={6,2,9,15,1,5,20,7,18};
                xiaoh(arr);
                dah(arr);
                for (int i=0;i<arr.length ; i++) {
                        System.out.print(arr[i]+"  ");
                }
               
        }
        //只是求数组中的最小元素及其索引 然后将最小元素与第一个元素交换位置
        //故没有返回值,返回值类型为void;参数列表为 int []arr
        public static void xiaoh(int []arr){
        int min=arr[0];
                int a=0;
                for (int i=1;i<arr.length ;i++ ) {
                           min=(min<arr[i])?min:arr[i];                //求最小元素的值
                         }
                        //System.out.println(min);
                for (int i=0;i<arr.length ;i++ ){                //求最小元素的索引
                  while (min==arr[i]) {
                          a=i;
                          break;
                  }
                }
                //System.out.println(a);
                int temp=arr[a];                                                //将值最小的元素与打一个元素互换位置
                arr[a]=arr[0];
                arr[0]=temp;
                /*for (int i=0;i<arr.length ;i++ ){
                        //System.out.print(arr[i]+"  ");        //打印输出,检验是否正确
                }*/
        }
        //只是求数组中的最大元素及其索引 然后将最大元素与最后一个元素交换位置
        //故没有返回值,返回值类型为void;参数列表为 int []arr
        public static void dah(int []arr){
        int max=arr[0];
                int a=0;
                for (int i=1;i<arr.length ;i++ ) {
                           max=(max>arr[i])?max:arr[i];                //求最大的元素
                         }
                        //System.out.println(max);
                for (int i=0;i<arr.length ;i++ ){                //求最大元素的索引
                  while (max==arr[i]) {
                          a=i;
                          break;
                  }
                }
                //System.out.println(a);
                int temp=arr[a];                                                //将最大元素与最后一个元素的位置互换
                arr[a]=arr[arr.length-1];
                arr[arr.length-1]=temp;
                /*for (int i=0;i<arr.length ;i++ ){
                        //\System.out.print(arr[i]+"  ");        //打印输出,检验是否正确
                }*/
        }
}
作者: 呆呆的小呆    时间: 2016-7-5 00:10
谢谢分享!




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