二维数组的章节作业
案例:已知有个升序的数组,要求插入一个元素,该数组的顺序依然是升序
eg:[10,12,45,90],添加23后,数组为[10,12,23,45,90]
1 public class homeWork01{
2 public static void main(String[] args){
3 /*
4 案例:已知有个升序的数组,要求插入一个元素,该数组的顺序依然是升序
5 eg:[10,12,45,90],添加23后,数组为[10,12,23,45,90]
6
7 思路分析:本质是数组的扩容+定位;
8 一.我们先确定,添加的数应该插入到哪个位置;
9 二 .然后扩容
10 首先先定义原始数组,然后再定义要添加的元素
11 遍历arr
12 */
13 //一、先定位
14 int [] arrys = {10,12,45,90};
15 int add = 23;//定义要添加的元素
16 int index = -1;//定义要添加的位置
17 for (int i = 0; i<arrys.length ;i++ ) {
18 if (add<=arrys[i]) {
19 index = i;
20 break;//找到位置以后,就退出
21 }
22 }
23 //判断index是否找到相应的位置
24 if (index == -1) {//说明还没找到位置
25 index = arrys.length;//如果index进行比较后,还没找到位置,就把Index放置到数组的最后;
26 }
27 // 二、扩容
28 /*
29 分析:先创建一个新的数组
30 再将arrys的元素拷贝到rags数组中去;
31 并且要跳过index的位置
32 int [] arrys = {10,12,45,90};
33 */
34 //先创建一个新的数组,大小arr.length+1
35 int [] rags = new int [arrys.length+1];
36 //将arrys的元素拷贝到rags数组中去,并且要跳过index的位置
37 for (int i=0,j=0;i<rags.length ;i++ ) {//j代表的是arrys数组的下标
38 if (i !=index) {//i代表的是新创建数组的下标
39 rags[i] =arrys[j];
40 j++;
41 }else{//i这个位置就是要插入的数
42 rags[i] = add;
43 }
44 }
45 arrys = rags;//把rags新数组的值赋值arrys;
46 System.out.println("插入新元素后arrys数组的顺序情况:");
47 for (int i = 0;i<arrys.length ;i++ ) {
48 System.out.print(arrys[i]+" ");
49 }
50 }
51 }
案列2:随机生成10个整数(1到100的范围)保存到数组;
并倒序打印以及求平均值、最大值、和最大值的下标;并查找里面是否有8;
1 public class homeWork02{
2 public static void main(String[] args){
3 /*
4 案列2;随机生成10个整数(1到100的范围)保存到数组;
5 并倒序打印以及求平均值、最大值、和最大值的下标;并查找里面是否有8;
6 */
7 int[ ] arr =new int [10];
8
9 for (int i = 0; i<arr.length ;i++ ) {
10 arr[i] = (int) (Math.random()*100)+1;//随机生成数(1到100)之间的整数
11 System.out.print(arr[i] +" ");
12 }
13 System.out.print("\n"+"arr数组排序情况(倒序)"+"\n");
14 for (int i=arr.length-1;i>=0 ;i-- ) {//倒序排序分布
15 System.out.print(arr[i]+" ");
16 }
17 //输出平均值,最大值,最大值下标
18 int sum =arr[0];
19 int max =arr[0];//先默认数组第一个元素为最大值;
20 int maxIndex=0;
21 System.out.println("\n平均值输出情况");
22 for (int i = 1 ;i<arr.length ;i++ ) {
23 if (max<arr[i]) {
24 max =arr[i];
25 maxIndex = i;
26 }
27 sum += arr[i];
28 }
29 System.out.println("平均值="+(sum/arr.length));
30 System.out.println("最大值="+max+"\t"+"最大值下标"+maxIndex);
31
32 //查找这个数组是否含有8 ->使用顺序查找
33 int findNum = 8;
34 int index =-1;
35 for (int i =0;i<arr.length ;i++ ) {
36 if (findNum == arr[i]) {
37 System.out.println("找到这个数"+findNum+"下标为"+i);
38 index = i;
39 break;
40 }
41 }
42 if (index == -1) {
43 System.out.println("没有找到这个数"+findNum);
44 }
45
46 }
47
48 }
想多了都是问题,做多了才是答案

浙公网安备 33010602011771号