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

第1关:学习-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 **********/

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值