我需要练习语法。我有一个数字数组,用这些方法可以找到平均值,报告最高数字并报告最低数字。为了报告最高/最低数字,我将对数组进行排序。
但是首先我的问题是报告平均值。我认为,如果我能理解该部分,则最小值/最大值将没有问题。我也尝试将其更改为Driver.randomArray []。getAverage()。
有什么建议吗?提前致谢。
〜水晶
错误代码:
线程“主”中的异常java.lang.Error:未解决的编译问题:
randomArray无法解析为类型
类无法解析为类型
语法错误,插入“ .class”以完成表达式
在IntegerArray.main(IntegerArray.java:48)
指的是我试图从这条线中求平均值,
System.out.println(randomArray []。getAverage());
一,驾驶员舱
import java.util.Arrays;
public class Driver {
private static final int MAX = 0;
public Driver(){
int[] randomArray = new int [MAX];
int sum;
final int MAX;
}
public int getAverage(){
for (int index = 0; index < MAX; index++){
int sum = 0;
int[] randomArray = null;
int average;
sum = sum + randomArray[index];
average = sum/MAX;
return average;}
}
public void sortArray(){
// sort the array from smallest to biggest
int[] randomArray;
Arrays.sort(randomArray);
System.out.println("The sorted array from smallest to biggest is:");
for (int number : randomArray) {
System.out.println( + number)}
}
public int getMin(){
int[] randomArray;
// find the lowest number
return randomArray[0];
}
public int getMax(){
int[] randomArray;
// find the highest number
return randomArray[MAX];
}
}
然后是我的主要班级:
import java.util.Random;
import java.lang.reflect.Array;
import java.util.Arrays;
public class IntegerArray {
public static void main (String[] args) {
// set up the constant for the size of the array
final int MAX = 10;
int sum = 0;
int average = 0;
int[] randomArray = new int [MAX];
for (int index = 0; index < MAX; index++)
// values of the array go from 0-10
randomArray[index] = (int) (Math.random() *10);
// prints the array
for (int value : randomArray)
System.out.println (value);
System.out.println("The length of the array is: " + randomArray.length);
System.out.println(randomArray[].getAverage());
}
}
最佳答案
您创建方法的方式,例如getAverage()您不能在创建的数组上调用它。另一方面,您可以在创建的Driver对象上调用它们。例如:Driver driver = new Driver(); System.out.println(driver.getAverage());
如果要在Array Object上调用它们,则应将它们添加到Array类中(但这比Java更高级)。
在Java代码中,您需要添加;发表声明后,不要忘记他们;)。您的IDE应该警告您有关它们的信息。
创建getMax()方法时,应将数组添加为参数。这样该方法就知道应该为哪个Array对象获得最大数量。例如:
public int getMax(int [] randomArray){
//找到最高编号
返回randomArray [MAX];
}
这对于您的所有方法都很重要。
我希望这可以解决您的一些答案,如果不能,请添加评论或其他内容。
所以这是您的代码在那之后:
驱动类别:
import java.util.Arrays;
public class Driver {
private static final int MAX = 0;
public Driver() {
int[] randomArray = new int[MAX];
int sum;
final int MAX;
}
public int getAverage() {
int average = 0;
for (int index = 0; index < MAX; index++) {
int sum = 0;
int[] randomArray = null;
sum = sum + randomArray[index];
average = sum / MAX;
}
return average;
}
public void sortArray(int[] randomArray) {
// sort the array from smallest to biggest
Arrays.sort(randomArray);
System.out.println("The sorted array from smallest to biggest is:");
for (int number : randomArray) {
System.out.println(+number);
}
}
public int getMin(int[] randomArray) {
// find the lowest number
return randomArray[0];
}
public int getMax(int[] randomArray) {
// find the highest number
return randomArray[MAX];
}
}
IntegerArray类:
public class IntegerArray {
public static void main(String[] args) {
// set up the constant for the size of the array
final int MAX = 10;
int sum = 0;
int average = 0;
int[] randomArray = new int[MAX];
for (int index = 0; index < MAX; index++)
// values of the array go from 0-10
randomArray[index] = (int) (Math.random() * 10);
// prints the array
for (int value : randomArray)
System.out.println(value);
System.out.println("The length of the array is: " + randomArray.length);
Driver driver = new Driver();
System.out.println(driver.getAverage());
}
}
在评论中回答问题:
您应该使用getAverage方法将randomArray作为参数,以便该方法知道它应在哪个数组上运行,例如:
driver.getAverage(randomArray);
您的getAverage方法也有一些缺陷:
1.您的sum变量应该在循环之外,因为否则每次在循环中进行迭代时,您都将其sum设置为0。
2.
int[] randomArray = null;
完全不应该执行此行,该行将创建一个NEW int数组并将其值设置为null,而您应该使用给定的int数组作为参数。因此,您的getAverage方法变为:
public int getAverage(int[] randomArray) {
int sum = 0;
for (int index = 0; index < randomArray.length; index++) {
sum = sum + randomArray[index];
}
int average = sum / randomArray.length;
return average;
}