统计一组学生成绩

任务7、统计一组学生成绩

  • 统计一组学生成绩的总分、平均分、最高分和最低分
  • 假如一组学生100个人,利用前面所学的知识,程序就需要声明10个变量s c o r e 1 , s c o r e 2 , . . . , s c o r e 100 \mathrm{score1, score2, …, score100}score1,score2,…,score100,来分别记住每位学生的成绩,计算平均分
  • a v e r a g e = s c o r e 1 + s c o r e 2 + . . . + s c o r e 100 100 \mathrm{average}=\displaystyle\frac{\mathrm{score1+score2+…+score100}}{100}average=
    100
    score1+score2+…+score100

    会显得特别麻烦,此时我们用一个数组来保存100个成绩,通过数组的索引或下标来访问每一个成绩,可以使用循环来处理。

(一)编程实现

  • net.lixin.p02.t07包里创建 t ask07
    在这里插入图片描述
package net.lixin.p02.t07;

import java.util.Scanner;

/**
 * 功能
 * 作者:李信
 * 日期:2022年06月09日
 */
public class task07 {
    public static void main(String[] args) {
        // 声明部分
        double[] scores = new double[10]; // 双精度一维数组,10个元素,scores[0], scores[1],..., scores[9]
        double sum, average, max, min;
        Scanner sc=new Scanner(System.in);

        // 输入部分
        for (int i = 0; i < scores.length; i++) {
            System.out.print("scores[" + i + "] = ");
            scores[i] = sc.nextDouble();
        }

        // 处理部分
        sum = 0;
        for (int i = 0; i < scores.length; i++) {
            sum = sum + scores[i];
        }
        average = sum / scores.length;

        max = Double.MIN_VALUE;
        for (int i = 0; i < scores.length; i++) {
            if (scores[i] > max) {
                max = scores[i];
            }
        }
        min = Double.MAX_VALUE;
        for (int i = 0; i < scores.length; i++) {
            if (scores[i] < min) {
                min = scores[i];
                // 输出部分
                System.out.println("sum = " + sum);
                System.out.println("average = " + average);
                System.out.println("max = " + max);
                System.out.println("min = " + min);
            }
        }
}}


在这里插入图片描述

  • 可以利用增强for循环来遍历数组
  • 在这里插入图片描述

课堂练习

  • 任务1、确保输入成绩在[0, 100]范围内
    在这里插入图片描述
  • 任务2、确定最高分或最低分的位置

( 二)讲解知识点

  • 详细讲稿:Java学习笔记2.6.1 数组 - 一维数组

1、一维数组定义

(1)语法格式

数组类型[] 数组名 = new 数组类型[数组长度];   
数组类型[] 数组名 = new 数组类型[]{数组元素0, 数组元素1, ...};  
数组类型[] 数组名 = {数组元素0, 数组元素1, ...}; 

(2 )数组定义示例

int[] ids = new int[100];
String[] names = new String[] {"洪艳林", "陈燕文", "郑晓琳", "唐竹龙"};
Object[] student = {1, "张三丰", "男", 20, "15892924560", "maths007@163.com"};

(3)数组定义的内存变化图

  • 声明数组变量,此时数组变量还是null,赋值实例化数组之后,才会给它分配内存空间
  • 在这里插入图片描述
数据类型默认初始值
byte, short, int, long0
float, double0.0
char一个空字符,即’\u0000’
booleanfalse
引用数据类型null,表示变量不引用任何对象

3.避免数组下标越界异常

  • 每个数组的索引(下标)都有一个范围,即[0, length - 1]。在访问数组的元素时,索引不能超出这个范围,否则程序会报错(ArrayIndexOutOfBoundsException,即数组角标越界异常)。
    在这里插入图片描述

4避免数组空指针异常

  • 在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现错误(NullPointerException,即空指针异常)。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值