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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© CRT 中级黑马   /  2016-9-3 01:29  /  627 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.分析以下需求,并用代码实现:
        (1)定义一个int类型的二维数组
        (2)获取该二维数组最小元素,并输出
import java.util.Scanner;
public class Noname2 {
        public static void main(String[] args)
        {
                {
                        int[][] arr = new int[][]{{3,2,1},{4,5,6},{7,8,9}};
                        int min = arr[0][0];
                        for (int i = 0; i < arr.length ; i++ )
                        {
                                for (int j = 0; j < arr.length ; j++ )
                                {
                                        if (min > arr[i][j]) {
                                                min = arr[i][j];
                                        }
                                }
                        }
                        System.out.print(min);
                }
        }
}

2.分析以下需求,并用代码实现:
        (1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
        (2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
        提示思路:先查找最大值和最小值出现的索引。
import java.util.Scanner;
public class Noname2 {
        public static void main(String[] args)
        {
                int[] arr = {6,2,9,15,1,5,20,7,18};
                change(arr,getMax(arr),arr.length-1);
                change(arr,getMin(arr),0);
                printArray(arr);
        }
        public static void change(int[] arr,int a,int b){ // 交换
                int temp = arr[a];
                arr[a] = arr[b];
                arr[b] = temp;
        }

        public static int getMax(int[] arr){ // 取最大值
                int max = arr[0];
                int maxIndext = 0;
                for (int i = 1; i < arr.length ; i++)
                {
                        if (max < arr[i]) {
                                max = arr[i];
                                maxIndext = i;
                        }
                }
                return maxIndext;
        }
        public static int getMin(int[] arr){ // 取最小值
                int min = arr[0];
                int minIndext = 0;
                for (int i = 1; i < arr.length ; i++)
                {
                        if (min > arr[i]) {
                                min = arr[i];
                                minIndext = i;
                        }
                }
                return minIndext;
        }
        public static void printArray(int[] arr){ // 打印
                for (int i =0 ; i < arr.length ; i++)
                {
                        System.out.print(arr[i]+" ");
                }
        }
}

3.分析以下需求,并用代码实现:(扩展)
        (1)键盘录入6个int类型的数据存数数组arr中
        (2)将arr数组中的内容反转  654321
        (3)将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推 634521 634125
        (4)最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换 654123
        (5)打印最终的数组(实现了1-4步之后的数组)
        (6)如:用户输入的6个int数字为[1,2,3,4,5,6],最后输出的结果为[6, 5, 4, 1, 2, 3]

import java.util.Scanner;
public class Noname2 {
        public static void main(String[] args)
        {
                Scanner sc = new Scanner(System.in);
                int[] arr = new int[6];
                System.out.print("请输入6个整数");//循环输入6个整数
                for (int i =0 ; i <= 5 ; i++ )
                {
                        int x = sc.nextInt();
                        arr[i] = x;
                }
                reverseArray(arr);//取反
                changeOddIndex(arr);//奇数角标互换
                changeFirstAndLast(arr);//第一个奇数角标和最后一个奇数角标互换
                printArray(arr);//打印

        }
        public static void changeFirstAndLast(int[] arr){
               
                for (int i = arr.length-1 ; i >= 0 ; i--)
                {
                        if (i % 2 != 0) {
                        int temp = arr[i];
                        arr[i] = arr[1];
                        arr[1] = temp;
                        return;
                        }
                }

        }
        public static void changeOddIndex(int[] arr){
               
                for (int i = 1 ; i < arr.length ; i+=2)
                {
                        if (i + 2 < arr.length) {
                        int temp = arr[i];
                        arr[i] = arr[i+2];
                        arr[i+2] = temp;
                        }

                }

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

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

4.把今天讲过的其他案例再练习一遍
       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马