Java数组之一维数值数组之成绩统计

Java数组之一维数值数组之成绩统计

在这里插入图片描述

一维数组

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

声明一维数值数组变量

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

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

示例:

// 声明一个用于存储int类型的数组变量 arr。
int [] arr;
// 声明一个用于存储long类型的数组变量 arr。
long [] arr;
// 声明一个用于存储double类型的数组变量 arr。
double [] arr;

创建一维数值数组

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

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

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

// 声明一个数组变量并指向一个用于存储10个int类型的数组
int[] arr = new int[10];

一维数组初始化

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

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

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

动态初始化示例:

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

执行结果:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

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

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

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

// 声明一个用于存储数字10,20,30的的数组。
// 第一种方式:
int[] arr = new int[]{10,20,30};
// 第二种方式:
int[] arr = {10,20,30};

一维数组元素的使用

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

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

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

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

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

示例:

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

执行结果:

10
40

一维数组长度

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

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

执行结果:

3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

成绩统计

编程要求

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

接收给定的数据(如:4 88 43 43 98 …,其中第一个数代表数组长度,其余数代表班级所有人数学成绩,这些数据用空格进行分隔)
求班级数学平均成绩,平均成绩用 double 类型表示。

测试说明

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

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

4 6 6 6 6 #

预期输出:

数学平均成绩为: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[] arr = new int[n];

        // 第三步:把成绩赋值给数组元素
        for(int i=0;i<n;i++){
            arr[i] = input.nextInt();
        }
        // 第四步:求所有成绩的和
        int sum=0;
        for(int i=0;i<n;i++){
            sum+=arr[i];
        }
        // 第五步:求平均成绩
        double x;
        x=(double)sum/n;
        System.out.println("数学平均成绩为:"+x);
        //System.out.printf("数学平均成绩为:%.f",x);  //这样的输出格式不符合题意,题目中的保留几位有效数字没有明确,故不能使用这种方法。
        
        /********** End **********/
    }
}

1.测试输入:12 99 89 66 76 57 90 98 87 76 65 65 78
—— 预期输出 ——
数学平均成绩为:78.83333333333333

2.测试输入:10 89 8 78 9 87 68 76 56 98 88
—— 预期输出 ——
数学平均成绩为:65.7

3.测试输入:11 76 87 89 78 9 87 76 76 89 67 56
—— 预期输出 ——
数学平均成绩为:71.81818181818181

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

848698119

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

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

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

打赏作者

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

抵扣说明:

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

余额充值