182讲二维数组的细节注意事项、二维数组练习,章节作业梳理,专业和编程
内容纲要

182讲二维数组的细节注意事项、二维数组练习,章节作业梳理,专业和编程

file

file

作业

file

file

  • 第四题有点难度。但是可以接受

file

package main.dayone;

public class Homework{
    public static void main(String[] args){
        //升序数组,要求插入一个元素,该数组顺序依然是升序,例如:
        //{10,12,45,90},添加23 后,数组为{10,12,23,45,90}
        int[] arr = {10,12,45,90};
        /*
        思路分析:
        1.先定义了arr 这个数组。
        2.要想添加一个数并在数组中排序,则需要先讲arr 数组的长度+1。
        3.通过for 循环使用冒泡法改良将arr[?] 插入到数组当中(当中可能需要定义一个临时存放变量保存将要迭代的数。)
        */
        //方法创建一个新的数组比arr长一个的。
        //

        int[] arrNew = new int[arr.length + 1];//创建一个比arr数组长1 的数组。
        for(int i = 0;i < arr.length;i++){
            arrNew[i] = arr[i];
        }
//        arrNew = arr;//赋值,将arr数组的值赋给arrNew = {10,12,45,90,0}
        arrNew[arrNew.length - 1] = 23;

        for(int j = 0;j < arrNew.length;j++) {
            for (int i = 0; i <= arrNew.length-2; i++) {
                if (arrNew[i] > arrNew[i + 1]) {
                    int temp = arrNew[i];
                    arrNew[i] = arrNew[i + 1];
                    arrNew[i + 1] = temp;
                }
            }
        }

        for(int num : arrNew){
            System.out.print(" " + num);
        }
    }
}
//这个方法不行,我做的。这个。。重新冒泡法而已//
//老韩的方法  我稍微变动了以下,老韩直接一个for循环定义2个循环变量,达到目的
package main.dayone;

//老韩的方法
public class Homework{
    public static void main(String[] args){
        //升序数组,要求插入一个元素,该数组顺序依然是升序,例如:
        //{10,12,45,90},添加23 后,数组为{10,12,23,45,90}
        int[] arr = {10,12,45,90};
        //思路先定位确定新插入的数字在什么位置,然后再扩容。
        //定位1.int insertNum = 23; 遍历数组arr
        //2.寻找到arr[?] >= insertNum 位置,标记为 index = ?;
        //3.未能找到insertNum
        int insertNum = 23;
        int index = -1;
        for(int i = 0;i < arr.length;i++){
            if(insertNum <= arr[i]){
                index = i;
                break; //赶紧退出,不然下一个循环会让index 有问题。
            }else{
                index = arr.length;
            }
        }
        //数组扩容
        //思路分析:1.在index 定位前面的数组全部移入到新的扩容数组里面去。在index 后的数组则往后面+1 位
        //2.
        int[] arrNew = new int[arr.length + 1];
        for(int j = 0;j < index;j++){
            arrNew[j] = arr[j];
        }
        arrNew[index] = insertNum;
        for(int i = index+1;i < arrNew.length;i++){
            arrNew[i] = arr[i-1];
        }
        for(int num : arrNew){
            System.out.print("\t" + num);
        }

        System.out.println("\n" +"index = " + index);

    }
}

/*  数组扩容部分

    for(int i = 0,int j = 0;i < arrNew.length;i++){//通过循环变量i来遍历arrNew[]
        if(index != i){
            arrNew[i] = arr[j];  //这个方法很巧妙,! 无论在前还是在后都可以添加到arrNew中
            j++;
        }else{
            arrNew[i] = insertNum; //妙啊!!!!妙蛙种子吃了妙脆角进了米奇妙妙屋,妙到家了!
        }

    }

*/

file

  • 第五题
package main.dayone;

public class ArrayRandomHomework5 {
    public static void main(String[] args) {
        /*
        随机生成10个整数(1 - 100 的范围)保存到数组,
        并倒序打印以及求平均值、求最大值、和最大值的下标、并查找里面是否有8
        */
        int[] arr = new int[10];
        for(int i = 0;i < arr.length;i++){
            arr[i] = (int) (100*Math.random());
        }
        //倒叙打印数组  直接吧最小值传给后面,这个思路最简单
        float total = 0;
        int index = 0;
        int max = 0;
        int x = 0; //这个x用来判断是否有8 的
        for(int j = 0;j < arr.length;j++){
            total += arr[j];  //求出了总和
            //判断又没哟8
            if(arr[j] == 8){
                System.out.println("数组中有8");
            }else{
                x = 1;
            }
            if(arr[j] > max){
                max = arr[j];
                index = j;
            }
            //倒叙
           for(int i = 0;i < arr.length-1;i++) {
               if (arr[i] < arr[i + 1]) {
                   int temp;
                   temp = arr[i];
                   arr[i] = arr[i + 1];
                   arr[i + 1] = temp;
               }
           }
       }
        System.out.println("最大值下标index = " + index);
        if(x == 1){
            System.out.println("数组中没有8");
        }
       float average = total/10; //平均数
        System.out.println("平均值为:" + average);
        for(int j = 0;j < arr.length;j++){
                    System.out.print(" " + arr[j]);
                }
    }
}

章节内容梳理

不做笔记了。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇