ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

20220716 十组 袁清清

2022-07-16 17:32:44  阅读:104  来源: 互联网

标签:index arr 20220716 十组 清清 System int length println


今天分享课上的练习

public class Test05 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int [] arr = new int[]{1,2,3,4,5};
        // 扩容
        int [] newArr = new int[arr.length * 2];

        for (int j = 0; j < arr.length; j++) {
            newArr[j] = arr[j];
        }
        arr = newArr;
        main:while(true){
            System.out.println("请输入要插入数据的下标:");
            int index = sc.nextInt();
            System.out.println("请输入要插入的数据:");
            int num = sc.nextInt();
        /*
            1.因为数组已满,需要扩容
            2.找到要插入的数据的位置
            3.插入位置后面的数据需要向后移位
         */
            // 定义一个临时变量,存储原来index位置的元素
//        int temp = arr[index];
//        // 把要插入的数存到了指定的位置
//        arr[index] = num;
//        // 原来位置的后面的那个数向后移一位
//        arr[index + 2] = arr[index + 1];
//        arr[index + 1] = temp;
            // 要插入的位置的原始数据保存起来
            int temp = arr[index];
            // 把要插入的数据放到指定位置
            arr[index] = num;
            //判断要移位的数据的个数
            for (int i = 1; i < arr.length - index; i++) {
                arr[arr.length - i] = arr[arr.length - 1 - i];
            }
            arr[index + 1] = temp;
            System.out.println("现在数组为:" + Arrays.toString(arr));
            System.out.println("是否继续添加:1、是   2、否");
            String flag = sc.next();
            switch (flag){
                case "1":
                    continue;
                case "2":
                    System.out.println("当前数组为:" + Arrays.toString(arr));
                    break main;
//                    System.exit(-1);
            }
        }

    }
}

  

 

public class Test03 {
    public static void main(String[] args) {
        // 准备一个键盘
        Scanner sc = new Scanner(System.in);
        int [] arr = new int[5];
        /*
            输入一个数,数是从后往前加
            倒序输入
            第一次输入的值给arr[arr.length - 1 - 0]
            第二次输入的值给arr[arr.length - 1 - 1]
            第三次输入的值给arr[arr.length - 1 - 2]
            数组的最大下标 = 数组的长度 - 1
         */
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入第" + (i+1) +"个数:");
            // 输入
            int num = sc.nextInt();
            arr[arr.length - 1 - i] = num;
        }
        for (int i : arr) {
            System.out.println(i);
        }
    }
}

  

 

 

public class Test04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int [] arr = new int[2];
        int i = 0;
        main:while(true){
            System.out.println("请输入数据:");
            int num = sc.nextInt();
            arr[arr.length - 1 - i] = num;
            i++;
            if(i >= arr.length) {
                int [] newArr = new int[arr.length * 2];
                /*
                    1,2
                    [2,1]
                    [0,0,0,0]
                    [2,1,0,0]
                    [0,0,2,1]
                 */
                for (int j = 0; j < arr.length; j++) {
                    newArr[newArr.length - 1 - j] = arr[arr.length - 1 - j];
                }
                arr = newArr;
            }
            System.out.println("是否继续添加:1、是   2、否");
            String flag = sc.next();
            switch (flag){
                case "1":
                    continue;
                case "2":
                    System.out.println("当前数组为:" + Arrays.toString(arr));
                    break main;
//                    System.exit(-1);
            }
        }
    }
}

  

 

public class Test02 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        /*
            有一个数组
         */
        int[] arr = new int[]{4, 58, 69, 14, 22, -1};
        /*
            键盘输入一个下标,获取指定下标位置的数字
         */
        System.out.println("请输入一个下标:");
        int index = sc.nextInt();
        /*
            输入的这个数是否合法?
            需要判断几种情况?
            1.输入的是一个负值
            2.输入的是一个正值,越界了
            3.正确的情况
         */
        if (index >= 0 && index <= arr.length - 1) {
            // 合法的情况
            System.out.println("对应位置的值是:" + arr[index]);
        } else {
            // 条件 <0 || >5
            // 越界
            System.out.println("你输入的数据有误,无法获取...");
        }
    }
}

  

今天主要是对昨天作业的讲解以及数组越界,倒序,插入扩容等知识的复习和练习。个人感觉挺难理解的,写又写不出来,听又听得懵懵懂懂的,还得晚上和明天多去复习练习。

标签:index,arr,20220716,十组,清清,System,int,length,println
来源: https://www.cnblogs.com/yqq123/p/16484709.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有