Java—统计一组学生成绩

使用循环实现统计一组学生成绩

一、统计一组学生的总分,平均分,最高分和最低分

  • 分析:如果假设有100个学生,利用其我们之前所学的知识,那我们的程序就需要声明10个变量score1,score2,…,score100,来记住每位学会的成绩,来计算平均分。
  • average = 100个学生的成绩相加乘以100,这样子就会非常的麻烦,所以此时我们就用一个数组来保存100个学生的成绩,然后通过数组的索引或下标来访问每一个成绩,我们可以使用循环来处理。

一、编程实现

  • 首先我们在net.jia.p02.t07包里创建Task07
    在这里插入图片描述
package net.jia.p02.t07;

import java.util.Scanner;

/**
 * 功能: 统计一组学生成绩
 * 作者:贾慧琳
 * 日期:2022年04月14日
 */
public class Task07 {
    public static void main(String[] args) {
        // 声明部分
        double[] scores = new double[10]; // 双精度一维数组,10个元素,scores[0],scores[1],.....,scores[9]
        double sum,averge,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];
        }
        averge = sum / scores.length;

        max = Double.MIN_VALUE;
        for (int i = 0;i < scores.length;i++) {
            if (max <scores[i]) {
                max = scores[i];
            }
        }

        min = Double.MAX_VALUE;
        for (int i = 0;i <scores.length;i++) {
            if(min > scores[i]) {
                min = scores[i];
            }
        }

        // 输出部分
        System.out.println("sum = " + sum);
        System.out.println("averge = " + averge);
        System.out.println("max = " + max);
        System.out.println("min = " + min);
    }
}

  • 运行程序查看结果
    在这里插入图片描述
  • 我们再在net.jia.p02.t07包里创建Task07_
    在这里插入图片描述
  • 我们利用增强for循环来遍历数组
    在这里插入图片描述
  • 接下来我们对程序进行优化,确保输入的成绩在[1,100]的范围内。
    在这里插入图片描述
package net.jia.p02.t07;

import java.util.Scanner;

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

        //输入部分
        for (int i = 0; i < scores.length; i++) {
            while (true) {
                System.out.print("scores[" + i + "] = ");
                scores[i] = sc.nextDouble();
                // 判断成绩是否合法 - [0,100]
                if (scores[i] > 0 && scores[i] <= 100) {
                    break;// 调处while循环
                } else {
                    System.out.println("温习提示:成绩必须在[0,100]之间!");
                }
            }
        }

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

        max = Double.MIN_VALUE;
         for (double score : scores) {
             if (max > score) {
                 max = score;
             }
         }

        min = Double.MAX_VALUE;
          for (double score : scores) {
              if (min > score) {
                  min = score;
              }
          }

        // 输出部分
        System.out.println("sum = " + sum);
        System.out.println("averge = " + averge);
        System.out.println("max = " + max);
        System.out.println("min = " + min);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值