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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gcno93 中级黑马   /  2016-8-31 22:26  /  901 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.分析以下需求,并用代码实现:
        (1)定义一个int类型的二维数组
        (2)获取该二维数组最小元素,并输出
class Demo1{
        /*
        *1.分析以下需求,并用代码实现:
        (1)定义一个int类型的二维数组
        (2)获取该二维数组最小元素,并输出
        */
        public static void main(String[] args) {
                int[][] arr ={{25,26,78},{-1,2,3},{8,9,5},{100,58,69}};//定义一个int类型的二维数组
                System.out.println("最小值为:"+getMin(arr));//调用求最小值函数求出最小值,并打印
        }

        public static int getMin(int[][] arr){
                int min=arr[0][0];//保存一个二维数组的元素
                for (int i = 0;i < arr.length ;i++ ) {//循环二维数组
                        for (int j=0;j < arr[i].length;j++ ) {
                                if(min>arr[i][j]){//比较大小
                                        min=arr[i][j];//如果大就交换
                                }
                        }
                }
                return min;//返回最小值
        }
}

2.分析以下需求,并用代码实现:
        (1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
        (2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
        提示思路:先查找最大值和最小值出现的索引。
class Demo1{
        /*
        *(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类型的数组
                changeArray(arr);
                for (int i=0;i<arr.length ;i++ ) {
                        System.out.print(arr[i]+"\t");
                }
                System.out.println();
               
        }
       
        public static void changeArray(int[] arr){

                int maxIndex=-1;//存储最大值下标
                int minIndex=-1;//存储最小值下标
                int max=arr[0];//存储最大值容器
                int min=arr[0];//存储最小值容器
                for (int i=0;i< arr.length;i++ ) {
                        //找最大
                        if(max<arr[i]){
                                max=arr[i];
                                maxIndex=i;
                        }
                        //找最少
                        if(min>arr[i]){
                                min=arr[i];
                                minIndex=i;
                        }
                }
                //最小元素与第一位元0素进行交换
                int temp=arr[0];
                arr[0]=arr[minIndex];
                arr[minIndex]=temp;
                //数组最大元素与最后一位元素进行交换
                temp=arr[arr.length-1];
                arr[arr.length-1]=arr[maxIndex];
                arr[maxIndex]=temp;
        }
       
}





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

import java.util.Scanner;
class Demo1{
        public static void main(String[] args) {
                int[] arr =new int[6];//定义一个int类型的二维数组
                Scanner sc=new Scanner(System.in);//创建键盘录入对象
                //键盘录入6个int类型的数据存数数组arr中
                for (int i=1;i<=6 ;i++ ) {
                        arr[i-1]=sc.nextInt();
                }
                revArray(arr);
                printArray(arr);
                changeArry(arr);
                printArray(arr);
        }
        /**
        *数组翻转
        */
        public static void revArray(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;
                }
        }

        /**
        *数组打印
        */
        public static void printArray(int[] arr){
                System.out.print("[");
                for (int i = 0;i < arr.length ;i++ ) {
                        if(i!=arr.length-1){
                                System.out.print(arr[i]+",");
                        }else{
                                System.out.print(arr[i]);
                        }
                       
                }
                System.out.print("]");
        }
        /**
        *数组角标为奇数的互相交换
        */       
        public static void changeArry(int[] arr){
                for (int i=0;i<arr.length-2 ;i++ ) {
                        if(i % 2 !=0){//是奇数进
                                int temp=arr[i];
                                arr[i]=arr[i+2];
                                arr[i+2]=temp;
                                if(i+4>=arr.length){//找最后的奇数
                                        temp=arr[1];
                                        arr[1]=arr[i+2];
                                        arr[i+2]=temp;
                                }
                               
                        }
                }
        }
}

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

1 个回复

倒序浏览
这个可以
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马