数组获取最大值

  • 最大值获取:从数组的所有元素中找出最大值。

  • 实现思路:

    • 定义变量,保存数组0索引上的元素

    • 遍历数组,获取出数组中的每个元素

    • 将遍历到的元素和保存数组0索引上值的变量进行比较

    • 如果数组元素的值大于了变量的值,变量记录住新的值

    • 数组循环遍历结束,变量保存的就是数组中的最大值

      package com.itheima.test;
      
      import java.util.Scanner;
      
      public class Test2Array {
          /*
              需求: 从数组中查找最大值
      
                      int[] arr = {12,45,98,73,60};
      
              实现步骤:
                      1. 假设数组中的第一个元素为最大值
                      2. 遍历数组, 获取每一个元素, 准备进行比较
                      3. 如果比较的过程中, 出现了比max更大的, 让max记录更大的值
                      4. 循环结束后, 打印最大值.
           */
          public static void main(String[] args) {
              int[] arr = {12,45,98,73,60};
              // 1. 假设数组中的第一个元素为最大值
              int max = arr[0];
              // 2. 遍历数组, 获取每一个元素, 准备进行比较
              for(int i = 1; i < arr.length; i++){
                  // 3. 如果比较的过程中, 出现了比max更大的, 让max记录更大的值
                  if(arr[i] > max){
                      max = arr[i];
                  }
              }
              //  4. 循环结束后, 打印最大值.
              System.out.println("max:" + max);
          }
      }

      数组元素求和

    • 需求:键盘录入5个整数,存储到数组中,并对数组求和
    • 思路:
    • 1.创建键盘录入对象,准备键盘录入
    • 2.定义一个求和变量,准备记录累加后的结果
    • 3.动态初始化一个长度为5的int数组,准备存储键盘录入的数值
    • 4.将键盘录入的数值存储到数组中
    • 5.遍历数组,取出每一个元素,并求和 6.输出总和
    • 代码实现:
  • package com.itheima.test;
    
    import java.util.Scanner;
    
    public class Test3Array {
        /*
            需求:键盘录入5个整数,存储到数组中,并对数组求和
    
            思路:
                1.创建键盘录入对象,准备键盘录入
                2.定义一个求和变量,准备记录累加后的结果
                3.动态初始化一个长度为5的int数组,准备存储键盘录入的数值
                4.将键盘录入的数值存储到数组中
                5.遍历数组,取出每一个元素,并求和
                6.输出总和
         */
        public static void main(String[] args) {
            // 1.创建键盘录入对象,准备键盘录入
            Scanner sc = new Scanner(System.in);
            // 2.定义一个求和变量,准备记录累加后的结果
            int sum = 0;
            // 3.动态初始化一个长度为5的int数组,准备存储键盘录入的数值
            int[] arr = new int[5];
            // 4.将键盘录入的数值存储到数组中
            for(int i = 0; i < arr.length; i++){
                System.out.println("请输入第" + (i+1) + "个整数:");
                //arr[i] = 10;
                arr[i] = sc.nextInt();
            }
    
            // 5.遍历数组,取出每一个元素,并求和
            for (int i = 0; i < arr.length; i++) {
                sum += arr[i];
            }
    
            // 6.输出总和
            System.out.println("sum:" + sum);
    
        }
    }
    

    数组基本查找【应用】

  • 数组案例

  • 需求: 已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引,并在控 制台输出找到的索引值。

  • 思路:

  • 1.定义一个数组,用静态初始化完成数组元素的初始化

  • 2.键盘录入要查找的数据,用一个变量接收

  • 3.定义一个索引变量,初始值为-1

  • 4.遍历数组,获取到数组中的每一个元素

  • 5.拿键盘录入的数据和数组中的每一个元素进行比较,如果值相同,就把该值对应的索引赋值给索引变量,并结束循环

  • 6.输出索引变量

  • 代码实现:

  • public static void main(String[] args) {
            // 1.定义一个数组,用静态初始化完成数组元素的初始化
            int[] arr = {19, 28, 37, 46, 50};
            // 2.键盘录入要查找的数据,用一个变量接收
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您要查找的元素:");
            int num = sc.nextInt();
            // 3.定义一个索引变量,初始值为-1
            // 假设要查找的数据, 在数组中就是不存在的
            int index = -1;
            // 4.遍历数组,获取到数组中的每一个元素
            for (int i = 0; i < arr.length; i++) {
                // 5.拿键盘录入的数据和数组中的每一个元素进行比较,如果值相同,就把该值对应的索引赋值给索引变量,并结束循环
                if(num == arr[i]){
                    // 如果值相同,就把该值对应的索引赋值给索引变量,并结束循环
                    index = i;
                    break;
                }
            }
            //  6.输出索引变量
            System.out.println(index);
        }
    }
    

    评委打分【应用】

  • 需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。 选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。

  • 思路:

  • 1.定义一个数组,用动态初始化完成数组元素的初始化,长度为6

  • 2.键盘录入评委分数

  • 3.由于是6个评委打分,所以,接收评委分数的操作,用循环

  • 4.求出数组最大值

  • 5.求出数组最小值

  • 6.求出数组总和

  • 7.按照计算规则进行计算得到平均分

  • 8.输出平均分

  •     public static void main(String[] args) {
            // 1.定义一个数组,用动态初始化完成数组元素的初始化,长度为6
            int[] arr = new int[6];
            // 2.键盘录入评委分数
            Scanner sc = new Scanner(System.in);
            //  3.由于是6个评委打分,所以,接收评委分数的操作,用循环
            for (int i = 0; i < arr.length; i++) {
                System.out.println("请输入第" + (i+1) + "个评委的打分:");
                int score = sc.nextInt();
                if(score >= 0 && score <= 100){
                    // 合法的分值
                    arr[i] = score;
                }else{
                    // 非法的分值
                    System.out.println("您的打分输入有误, 请检查是否是0-100之间的");
                    i--;
                }
            }
    
            // 4.求出数组最大值
            int max = arr[0];
            for (int i = 1; i < arr.length; i++) {
                if(max < arr[i]){
                    max = arr[i];
                }
            }
    
            // 5.求出数组最小值
            int min = arr[0];
            for (int i = 1; i < arr.length; i++) {
                if(min > arr[i]){
                    min = arr[i];
                }
            }
    
            // 6.求出数组总和
            int sum = 0;
            for (int i = 0; i < arr.length; i++) {
                sum += arr[i];
            }
    
            // 7.按照计算规则进行计算得到平均分
            int avg = (sum - max - min ) / 4;
    
            // 8.输出平均分
            System.out.println(avg);
        }
    }

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值