20220716 十组 袁清清
作者:互联网
今天分享课上的练习
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