java 数组习题 1(求和、最值、猜数字、随机排名、冒泡排序)

目录

1、求和

2、求最值

3、猜数字:

4.随机排名:

5、冒泡排序算法

1、求和

思路:

        第一步:先把数据存入数组

        第二步: 遍历每个数组 然后累加

代码:

public static void main(String[] args) {
        //把数据拿到程序中
        int[] qian = {16,26,36,6,100};
        //定于累加变量
        int sum = 0;
        //遍历数组元素
        for (int i = 0; i < qian.length; i++) {
            //累加元素值
            sum += qian[i];
        }
        //输出求和变量
        System.out.println(sum);
    }

2、求最值

                需求:给出:999,200,100,1000,800的一组数据 算出最值 

思路:

        第一步:先把数据存入数组

        第二步:定义一个存储最值的变量(建议使用数组第一个值做参照)

        第三步:遍历数组,寻找替换最值

代码: 

  public static void main(String[] args) {
        //把数据拿到程序中
        int[] num = {999, 200, 100, 1000, 800};
        //定义一个存储最值的
        int max = num[0];
        //遍历数组,寻找替换最值
        for (int i = 0; i < num.length; i++) {
            if(num[i] > max){
                max = num[i];
                
            }

        }
        //输出
        System.out.println(max);

3、猜数字:

思路:

        第一步:随机生成5个1-20的数值用数组存储起来

        第二步:定义死循环 遍历数组 猜中为止才结束循环

  代码:

public static void main(String[] args) {
        //定义动态初始化数组存储数值
        int[] data = new int[5];
        //定义一个随机数
        Random s = new Random();
        for (int i = 0; i < data.length; i++) {
            data[i] = s.nextInt(20) + 1;

            //定义死循环猜数
            Scanner inp = new Scanner(System.in);
            OUT:
            while (true) {
                System.out.println("输入1-20的数进行猜测");
                //定义输入变量i
                int aa = inp.nextInt();
                //遍历每个数据 进行猜测
                for (int i1 = 0; i1 < data.length; i1++) {
                    if (data[i] == aa) {
                        System.out.println("猜中的数值索引是" + i);
                        break OUT;//结束整个死循环
                    }

                }
                System.out.println("请重新猜测");

            }
            //输出数组所有数据
            for (int i1 = 0; i1 < data.length; i1++) {
                System.out.print(data[i]+"\t");

            }
        }
    }

4.随机排名:

思路:

        第一步:用数组存储员工工号(使用动态初始化)

        第二步:遍历数组 随机索引打乱顺序

    public static void main(String[] args) {
        //定义数组存储数据
        int[] ghs = new int[5];
        //定义循环依次录入工号
        Scanner s = new Scanner(System.in);
        for (int i = 0; i < ghs.length; i++) {
            //录入工号
            System.out.println("请录入第"+(i+1)+"的工号");
            int gh = s.nextInt();
            //存入数组
            ghs[i] = gh;
        }
        //打乱员工号顺序
        Random r = new Random();
        for (int i = 0; i < ghs.length; i++) {
            //遍历
            //定义随机索引index
            int index = r.nextInt(ghs.length);
            //定义一个临时变量,存储index位置的值
            int temp = ghs[index];
            ghs[index] = ghs[i];
            ghs[i] = temp;
        }
        //遍历数组元素 输出
        for (int i = 0; i < ghs.length; i++) {
            System.out.print(ghs[i]+"\t");

        }
    }

 5、冒泡排序算法

概念:每次将数组中找到的最大值放到最后面去

 步骤:

*确定执行几轮,轮数:数组长度-1

*每轮比较几次,次数:数组长度-i

例如:

 public static void main(String[] args) {
        //定义数组存储数据
        int[] arr = {1, 3, 2, 5};
        //定义循环控制比较轮数
        for (int i = 0; i <= arr.length - 1; i++) {
            //i = 1    比较3次     j = 0 1 2
            //i = 2    比较2次     j = 0 1
            //i = 3    比较1次     j = 0

            //控制每轮次数和占位
            for (int i1 = 0; i1 < arr.length - i -1; i1++) {
                //判断j元素值是否大于后一项 是则交换
                if (arr[i1] > arr[i1 + 1]) {
                    //定义临时变量
                    int temp = arr[i1 + 1];
                    arr[i1 + 1] = arr[i1];
                    arr[i1] = temp;

                }

            }

        }
        //遍历数组内容输出
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "\t");
        }
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

open_test01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值