黑马程序员技术交流社区

标题: 关于for循环求解 [打印本页]

作者: 奋飞的小模糊    时间: 2016-3-8 23:25
标题: 关于for循环求解
(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]+" ");
                }
        }

       
}

作者: 奋飞的小模糊    时间: 2016-3-8 23:27
有错误,找不到
作者: 天赐潇潇    时间: 2016-3-9 00:32
我也看不出来 ,提示说你的数组索引越界了

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

QQ截图20160309002543.jpg

作者: docwei    时间: 2016-3-9 07:06
求最大值和最小值的方法都是错误的,还有请把for循环的格式写规范,定义i变量不要写到for循环外面了。
作者: 超人d咖啡也加糖    时间: 2016-3-9 12:38
楼上说的对,这是我改过的获取最大值索引的方法,获取最小值索引的方法类似,希望能帮到楼主(这个题没有考虑我有两个最大值或最小值的情况。。。。)
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;
        }

作者: 芸芸众生    时间: 2016-3-10 00:14
这个还是有点难度的
作者: h847941727    时间: 2016-3-10 00:25
我来学习了!




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