AI悦创

V1

2022/12/24阅读:10主题:凝夜紫

19-用数组保存成绩

你好,我是悦创。

原文首发:https://bornforthis.cn

0. 目录

  • 语数外物化生的成绩怎么表示?
  • 什么是数组和数组的语法
  • 用数组处理 6 门课的成绩

1. 语数外物化生的成绩怎么表示?

  • 用六个变量表示,如果有更多的科目怎么办?
  • 如果有更多的科目怎么办?
  • 如果想求出成绩最高的科目怎么办?
public class SevenScore {
    public static void main(String[] args) {
        // 声明六个变量, 分别代表六门科目的成绩
        int YuWen = 0;
        int ShuXue = 0;
        int WaiYu = 0;
        int WuLi = 0;
        int HuaXue = 0;
        int ShengWu = 0;
    }
}

2. 什么是数组和数组的语法

2.1 数组的特点是:

  • 数组是相同类型的变量的集合,所有元素的类型都一样
  • 可以指定数组包含的元素个数,最多为 int 的最大值个「我们要创建数组的时候,数组的类型大小,必须是 int」
  • 元素有固定的顺序
  • 每个元素都有一个固定的编号,称之为索引(index),从 0 开始递增,类型为 int
  • 可以像操作变量一样读写数组中的任何一个元素
  • 如果说之前的变量是一张有名字的纸,可以通过这个名字读写这个变量;数组则是一个有名字的本子。本子有一个名字,每页纸有一个页码。可以通过本子的名字和页码读写对应的数组元素

2.2 创建和使用一个数组的语法

数组元素类型[] 变量名 = new 数组元素类型[数组长度] 变量名[索引] 可以使用这个变量,可以读取也可以给它赋值

public class CreateArray {
    public static void main(String[] args) {
        int[] intArray = new int[9];  // new 创建、创造

        System.out.println(intArray[2]);

        double[] doubleArray = new double[100];

        System.out.println(doubleArray[66]);

        // 添加数据
        intArray[0] = 0;
        intArray[1] = 1;
        intArray[2] = 2;
        System.out.println(intArray[2]);
        System.out.println(intArray.length);  // 获取数组长度

    }
}

在我们没有给数组中的元素赋值「添加数据」,那数组内的数据类型,都是数组类型的缺省值。对于数字类型,它的缺省值是:0。

public class array_type {
    public static void main(String[] args) {
        int[] intArray = new int[9];
        System.out.println(intArray[0]);

        short[] shortArray = new short[9];
        System.out.println(shortArray[0]);

        double[] doubleArray = new double[9];
        System.out.println(doubleArray[0]);

        String[] StringArray = new String[9];
        System.out.println(StringArray[0]);
    }
}

3. 用数组处理 6 门课的成绩

3.1 创建数组来表示 6 门课的成绩

  • 创建一个大小为 6 的 double 类型的数组
  • 创建一个大小为 6 的 String 数组,代表每门课的名字
  • 为每门课创建一个 int 变量,值为这门课的成绩对应的数组的索引,以便操作每门课的成绩和名字

3.2 求出最高的成绩

  • 创建一个大小为 6 的 double 类型的数组
  • 创建一个大小为 6 的 String 数组,保存每门课的成绩
  • 为每门课创建一个 int 变量,值为这门课的成绩对应的数组的索引,以便操作每门课的成绩
  • 实现计算最高成绩的逻辑
public class ScoreArrayMaxScore {
    public static void main(String[] args) {
        // 声明六个变量, 分别代表六门科目的成绩
        int YuWenIndex = 0;
        int ShuXueIndex = 1;
        int WaiYuIndex = 2;
        int WuLiIndex = 3;
        int HuaXueIndex = 4;
        int ShengWuIndex = 5;

        // 每门课的名字
        String[] names = new String[6];
        names[YuWenIndex] = "语文";
        names[ShuXueIndex] = "数学";
        names[WaiYuIndex] = "外语";
        names[WuLiIndex] = "物理";
        names[HuaXueIndex] = "化学";
        names[ShengWuIndex] = "生物";

        // 每门课的成绩
        double[] scores = new double[6];

        // 用随机数给成绩赋值
        for (int i = 0; i < 6; i++) {
            scores[i] = 80 + Math.random() * 20;
        }

        // 计算最高成绩和最高成绩对应的科目的索引
        double maxScore = -1;
        int maxScoreIndex = -1;
        for (int i = 0; i < 6; i++) {
            System.out.println(names[i] + "的成绩为" + scores[i]);
            if (maxScore < scores[i]) {
                maxScore = scores[i];
                maxScoreIndex = i;
            }
        }

        // 输出最高成绩科目和成绩
        System.out.println("最高分的科目为" + names[maxScoreIndex] + ",成绩为:" + maxScore);

    }
}

那上面寻找最高分是有缺陷的,因为有可能多个科目和最高分是相同的。这个时候可以再写一个循环,找出和最大值相等的就可以。然后把找到的输出出来。——快试一试哦。

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

分类:

后端

标签:

Java

作者介绍

AI悦创
V1

编程一对一教学,微信:Jiabcdefh