我需要编写一个程序来创建一个HomeworkGrades()
类,该类将8章的作业成绩存储到doubles
的数组中。我需要创建一个构造函数,将数组作为输入并将其内容复制并复制到classes数组中。最后,在我的main()
类中,我需要打印出数组中分数的平均值和数组中最低的分数。我想我正确创建了HomeworkGrades()
类,只是想不出如何调用正确的方法来将值打印到屏幕上。
这是我的main()
课...
package classwork_7_1;
public class ClassWork_7_1 {
public static void main(String[] args) {
double[] grades = {98.7, 77.9, 90, 83, 67, 33, 81, 90};
double lowChap = grades[0];
System.out.println(average(grades[]));
System.out.println(lowChap(lowChap[]));
}
}
这是我的HomeworkGrades()
课...
package classwork_7_1;
public class HomeworkGrades {
private double[] grades = new double[8];
public HomeworkGrades(double[] grades) {
this.grades = grades;
}
public double average(double[] grades) {
int chap = 8;
double sum = 0;
for (int i = 0; i < grades.length; i++)
sum += i;
double average = sum / chap;
return average;
}
public double lowChap(double[] grades) {
double minValue = grades[0];
for (int i = 0; i < grades.length; i++) {
if (grades[i] < minValue) {
minValue = grades[i];
return minValue;
}
}
}
}
答案 0 :(得分:1)
以下几行:
double lowChap = grades[0];
System.out.println(average(grades[]));
System.out.println(lowChap(lowChap[]));
lowChap
是一个单独的double
,您正在尝试将lowChap[]
传递到lowChap()
中,该{接受一个Array
的双精度数,需要调用在HomeWorkGrades
对象上。显然这是行不通的。相反,您必须创建类型为object
的{{1}}并将HomeWorkGrades
传递给构造函数,然后在该对象上调用方法。在这种情况下,您可以删除方法中的参数,而只需使用grades
:
this.grades
因此,在您的方法中,您将:
HomeWorkGrades hw = new HomeWorkGrades(grades);
System.out.println(hw.average());
System.out.println(hw.lowChap());
请注意,在public double average(){
int chap = 8;
double sum = 0;
for(int i = 0; i<grades.length; i++)
sum+=grades[i];
double average = sum / chap;
return average;
}
public double lowChap(){
double minValue = grades[0];
for(int i=0;i<grades.length;i++){
if(grades[i] < minValue)
minValue = grades[i];
}
return minValue;
}
中,我将average
更改为sum += i;
,以将索引sum+= grades[i];
的成绩添加到i
,而不仅仅是sum
。
输出:
i
答案 1 :(得分:-1)
请注意,以下代码无法处理空grades
数组的情况。
double min = Arrays.stream(grades).min().getAsDouble();
double average = Arrays.stream(grades).average().getAsDouble();