头歌学习-Java数组之一维数值数组之成绩统计

任务描述

本关任务:统计某班级所有人的数学平均成绩。

相关知识

为了完成本关任务,你需要掌握: 1.声明一维数值数组变量; 2.一维数值数组的创建; 3.一维数值数组的长度; 4.一维数值数组的初始化。

数组对于每一门编程语言来说都是重要的数据结构之一,Java 语言中提供的数组是用来存储固定长度的同类型数据,这些数据称为数组元素。下面我们将介绍用于存储数值的一维数组。

声明一维数值数组变量

声明数值数组变量,用于代表一个对象, 只是一个名字而已, 对象还没有创建,下面是声明数值数组变量的语法:

 
  1. 数据类型[] 数组名; // 中括号中不能有数字

示例:

 
  1. // 声明一个用于存储int类型的数组变量 arr。
  2. int [] arr;
  3. // 声明一个用于存储long类型的数组变量 arr。
  4. long [] arr;
  5. // 声明一个用于存储double类型的数组变量 arr。
  6. double [] arr;
创建一维数值数组

Java 语言使用 new 操作符来创建数组,语法如下:

 
  1. new 数据类型[数组长度];

后期要想使用该数组,需要把数组变量指向该数组。 示例:

 
  1. // 声明一个数组变量并指向一个用于存储10个int类型的数组
  2. int[] arr = new int[10];
一维数组初始化

数组初始化分为两种:动态初始化和静态初始化。 动态初始化:创建一个数组,指定数组长度,但不指定数组存储的具体值。根据数组存储数值类型的不同,会给数组自动赋不同的初始值,具体可分为以下两种:

  • 对于 byte,short、int 和 long 类型,数组中每个值被赋值成 0;

  • 对于 float,double 类型,数组中每个值被赋值成 0.0。

动态初始化示例:

 
  1. public static void main(String[] args) {
  2. // 创建一个用于存储10个int类型的数组
  3. int[] ints = new int[10];
  4. System.out.print(Arrays.toString(ints));
  5. }

执行结果:

 
  1. [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

在以上实例中,数组长度 10 可用变量代替,如下所示:

 
  1. public static void main(String[] args) {
  2. // 定义变量n
  3. int n =10;
  4. // 创建一个用于存储10个int类型的数组
  5. int[] ints = new int[n];
  6. }

静态初始化:创建一个数组,指定数组存储的具体值。 示例:

 
  1. // 声明一个用于存储数字10,20,30的的数组。
  2. // 第一种方式:
  3. int[] arr = new int[]{10,20,30};
  4. // 第二种方式:
  5. int[] arr = {10,20,30};
一维数组元素的使用

数组的元素是通过索引访问的,数组索引从 0 开始。 创建数组 arr:

 
  1. int[] arr = new int[]{10,20,30};

其中第一个元素 10 的索引为 0,第二个元素 20 的索引为 1,第三个元素 30 的索引为 2。我们可以通过如下方式访问数组:

  • 数组名[索引],获取出数组中的元素。arr[0] 可以获取到元素 10;

  • 数组名[索引] = 数值,为数组中的元素赋值。arr[0]=40 可以把数组的第一个元素改成 40。

示例:

 
  1. public class ArrTest {
  2. public static void main(String[] args) {
  3. // 定义数组,并赋初值
  4. int[] arr = new int[]{10,20,30};
  5. // 通过索引获取第一个元素
  6. System.out.println(arr[0]);
  7. // 为数组第一个元素赋值
  8. arr[0]=40;
  9. // 重新查看数组第一个元素
  10. System.out.print(arr[0]);
  11. }
  12. }

执行结果:

 
  1. 10
  2. 40
一维数组长度

我们可以使用数组的属性 length 来获取数组的长度。 示例:

 
  1. public class ArrTest {
  2. public static void main(String[] args) {
  3. // 定义数组,并赋初值
  4. int[] arr = new int[]{10,20,30};
  5. // 获取数组的长度
  6. System.out.println(arr.length);
  7. }
  8. }

执行结果:

 
  1. 3
编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,求班级数学平均成绩,具体要求如下:

  • 接收给定的数据(如:4 88 43 43 98 #...,其中第一个数代表数组长度,其余数代表班级所有人数学成绩,# 号用于终止接收数据,这些数据用空格进行分隔),遇到 # 号终止接收;
  • 求班级数学平均成绩,平均成绩用 double 类型表示。
测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

可在右侧 “测试结果”区查看具体的测试集详情。 例: 测试输入:

 
  1. 4 6 6 6 6 #

预期输出:

 
  1. 数学平均成绩为:6
    /*
    任务:仔细阅读给出的代码框架及注释,在 Begin-End 间编写程序代码,求班级数学平均成绩,具体要求如下:
    - 接收给定的数据(如:4,88,43,43,98,#...,其中第一个数代表数组长度,
      其余数代表班级所有人数学成绩,# 号用于终止接收数据),遇到 # 号终止接收;
    - 求班级数学平均成绩,平均成绩用 double 类型表示。
     
    注意:数字分隔符为中文逗号。
     
    */
    import java.util.Scanner;
     
    public class ArrTest {
        public static void main(String[] args) {
            // 请在Begin-End间编写代码
            /********** Begin **********/
            // 第一步:接收给定的第一个数,用于定义数组长度
            Scanner input = new Scanner(System.in);
            int n = input.nextInt();
            // 第二步:定义数组
            int[] array = new int[n];
            int i =0;
            // 第三步:把成绩赋值给数组元素
            while(!input.hasNext("#")){
              array[i] = input.nextInt();
              i ++;
            }
            // 第四步:求所有成绩的和
            int sum = 0;
            for(int j = 0;j < n;j ++){
              sum += array[j];
            }
            // 第五步:求平均成绩
            double average = sum * 1.0 / n;
            System.out.print("数学平均成绩为:" + average);
            /********** End **********/
        }
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值