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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋飞的小模糊 中级黑马   /  2016-3-8 23:25  /  768 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
        (2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
*/
class Demo1 {
        public static void main(String[] args) {
                int [] arr={6,2,9,15,1,5,20,7,18};
                int x = getMaxIndex(arr);
                int y = getMinIndex(arr);

                int temp1 = arr[arr.length-1];
                arr[arr.length-1] = arr[x];
                arr[x] = temp1;

                int temp2 = arr[0];
                arr[0] = arr[y];
                arr[y]=temp2;

                show(arr);
        }

        public static int getMaxIndex(int []arr) {
                int temp = arr[0];
                int i;
                for ( i=0;i<=arr.length-1 ;i++ ) {
                        if (arr[i]>temp) {
                                temp = arr[i];
                        }
                }
                return i;
        }

        public static int getMinIndex(int []arr) {
                int temp = arr[0];
                int i;
                for (i=0;i<=arr.length-1 ;i++ ) {
                        if (arr[i]<temp) {
                                temp = arr[i];
                        }
                }
                return i;
        }

        public static void show(int []arr) {
                for (int i=0;i<=arr.length-1 ;i++ ) {
                        System.out.print(arr[i]+" ");
                }
        }

       
}

6 个回复

倒序浏览
有错误,找不到
回复 使用道具 举报
我也看不出来 ,提示说你的数组索引越界了

QQ截图20160309002543.jpg (40.56 KB, 下载次数: 1)

QQ截图20160309002543.jpg
回复 使用道具 举报
docwei 来自手机 中级黑马 2016-3-9 07:06:50
板凳
求最大值和最小值的方法都是错误的,还有请把for循环的格式写规范,定义i变量不要写到for循环外面了。
回复 使用道具 举报
楼上说的对,这是我改过的获取最大值索引的方法,获取最小值索引的方法类似,希望能帮到楼主(这个题没有考虑我有两个最大值或最小值的情况。。。。)
public static int getMaxIndex(int[] arr) {
                int temp = arr[0];
                int j=0;
                for (int i = 1; i <= arr.length - 1; i++) {
                        if (arr[i] > temp) {
                                temp = arr[i];
                                j=i;
                        }
                }
                return j;
        }
回复 使用道具 举报
这个还是有点难度的
回复 使用道具 举报
我来学习了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马