为了账号安全,请及时绑定邮箱和手机立即绑定

我的阵列的一些问题

我的阵列的一些问题

不负相思意 2021-06-28 17:53:00
我的讲师给了我这些问题:1. 编写一个程序来执行以下操作:a. 从用户 (n)b获取学生人数。要求用户输入 n 个学生的 n 个成绩,将它们存储在一个数组中。C。打印出这 n 个等级的最大值、最小值和平均值。注意:编写3个方法来返回数组的最大/最小/平均元素并在本程序中使用它们。我尝试这样做,但我的程序的输出不符合我的预期。这是我的代码:package javaapplication2;import java.util.*;public class JavaApplication2 {    public static double max(double[]x) {        int i = 0;        int max=0;        for (i=0; i < x.length; i++) {          if (max < x[i]) {            max = i;          }                 }        return max;        }    public static double min(double[]y) {        double min = max(y);        for (int i =0; i < y.length; i++) {            if (y[i] < min) {                min = y[i];            }        }return min;    }    public static void main(String[] args) {        String name ="";        String choice;        int times =0;        double score;          Scanner input = new Scanner(System.in);         System.out.println("Enter student's name: ");        name = input.nextLine();        while (name != "exit") {            double grades [] = new double [5000];            System.out.println("Enter student's score: ");            score = Double.parseDouble(input.nextLine());                        grades[times] = score;                        times += 1;                        System.out.println("The max grade is: " + max(grades));            System.out.println("The min grades is: " + min(grades));            System.out.println("Enter student's name: ");            name = input.nextLine();               }    }}这是我的输出:Enter student's name: kEnter student's score:30The max grade is: 0.0The min grades is: 0.0Enter student's name:是的,我不知道为什么我的最高等级和最低等级是 0.0。哪位大侠帮帮我,谢谢!!!
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

在计算最大值的函数中,您应该使用:

if (max < x[i]) {
    max = x[i];}

因为你想返回元素而不是它的索引。此外,您可能希望grades在 while 循环之前声明您的数组,否则它会在每次迭代时创建一个新数组。

为了提高代码性能:

1.你可以在你的 max/min 函数中,一旦遇到 value=0 就退出循环。在您当前的代码中,即使只有一个条目,循环也会迭代 5000 次。

2.在你的min函数中,double min = max(y);你应该使用double min = Double.MAX_VALUE;. 它将防止不必要的max函数调用。


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 312 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信